Tektolo
Server Details
Deterministic, source-cited rental property tools: turnover estimates and deposit rules by US state.
- Status
- Healthy
- Uptime
- 100.0% over 23 days
- Last Tested
- Transport
- Streamable HTTP · MCP 2025-11-25
- URL
- Repository
- tektolo/skills
- GitHub Stars
- 0
TDQS
Scored across 5 tools
The deposit tools split cleanly into rules lookup versus settlement calculation, and the turnover tools separate catalog lookup, plain-English first estimate, and structured scoping. The only possible confusion is between property_turnover_quick_estimate and property_turnover_scope, since both produce priced turnover estimates, but their descriptions clearly distinguish plain-language first estimates from issue-code-based structured scopes.
All names use snake_case and predictable domain prefixes (deposit_settlement_* and property_turnover_*). Minor deviations exist: deposit_settlement_settle is redundant, and property_turnover_scope uses a noun rather than a clear verb, but the pattern remains readable and consistent overall.
Five tools is well-scoped for two related workflows: security deposit compliance and rental turnover estimation. Each tool has a distinct role, and there is no obvious bloat or missing operational layer that would require more tools.
The surface covers deposit rules lookup, deposit settlement, issue-code catalog lookup, quick turnover estimation, and structured scoping, which is strong lifecycle coverage for the apparent domain. Minor gaps remain, such as no explicit portfolio/history management or rate-card administration beyond optional inputs, but agents can work around these.
Available Tools
5 toolsdeposit_settlement_rulesSecurity deposit rules for a state (and city)ARead-onlyIdempotentInspect
Looks up the security deposit rules (deposits only) for one US state, with a covered city's deposit ordinance (Chicago, San Francisco, Berkeley, Los Angeles, Seattle, Portland, Minneapolis, Saint Paul). Inputs: state (two-letter code); optional city. Returns the deposit return deadline and what starts it, itemization and documentation duties, allowed deductions and depreciation, deposit interest, penalties, the deposit cap and recent changes, with citations. Not for: settling a specific move-out (deposit_settlement_settle does that), evictions, unpaid-rent collection, rent increases or rent control, lease renewal or notice periods, legal advice. Deterministic and source-cited: the same input gives the same result.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | Optional city for its overlay (e.g. 'Chicago'). | |
| as_of | No | Optional date (YYYY-MM-DD): show the law in force on that day, for a past move-out the day the tenancy ended. Omitted: the current law. | |
| audit | No | Also return the run record and input/result hashes (an audit trail). Default false. | |
| state | Yes | US state, 2-letter code or name (e.g. 'TX'). | |
| serve_pinned | No | Optional, with expect_ruleset. True asks us to answer under the ruleset version you named even when the rules have changed since, from that version's signed bundle; the result says so in served_from_bundle. We refuse a version older than 12 months, one a later correction or law change replaced for your state, or one we have no bundle for. Default false: the call fails whenever the rules have changed. | |
| expect_ruleset | No | Optional. The ruleset version you built against, as results carry it in provenance.ruleset_version (e.g. 'sd-2026.11.14'), or its sha256: hash. If the rules have changed since, the call fails (nothing computed, nothing charged) and says what is in force now, so you upgrade on your own schedule. Leave it out to answer under the current rules. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| links | No | |
| result | Yes | |
| review | No | |
| reading | No | |
| signature | No | |
| input_hash | No | |
| client_refs | No | |
| deprecation | No | |
| result_hash | No | |
| request_hash | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnly/idempotent/non-destructive, so the safety profile is free; the description adds genuinely new traits: deterministic and source-cited results, plus the fact that a failed pre-check computes and charges nothing. It does not surface the ruleset-pinning/upgrade failure mode, though the schema covers that thoroughly.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, covered cities, inputs, then exclusions — a sensible order. Slightly dense and mildly redundant ("with citations" then "source-cited"), but nearly every clause carries information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Return contents, scope, exclusions and determinism are covered, and an output schema exists so return values need not be spelled out. The historical "as_of" capability and ruleset-pinning behavior go unmentioned in prose, but the schema documents both in detail.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the baseline applies. The description restates state and city but is silent on as_of, audit, expect_ruleset and serve_pinned, so it adds little semantic value beyond the schema's own descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("Looks up the security deposit rules ... for one US state") and bounds scope immediately with "(deposits only)", plus enumerates the covered city ordinances. The agent can distinguish it from deposit_settlement_settle without opening either schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicit "Not for:" list rules out move-out settlement, evictions, rent collection, rent control, lease renewal and legal advice, and names the alternative sibling (deposit_settlement_settle) with the condition that selects it. Both when-to-use and when-not-to-use are covered.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
deposit_settlement_settleSettle a security deposit after move-outARead-onlyIdempotentInspect
Settles a US residential security deposit after move-out under the state's statute (50 states and DC) and a covered city's ordinance. Inputs: state, deposit_usd, vacated_on; optional city, monthly_rent_usd, move_in_on, deductions (category, amount, item age, whether the tenant caused it), the dates that start a state's clock, and as_of. Returns the return deadline and its status, each deduction allowed or not (with depreciation), interest owed, refund due, penalty exposure, a draft itemized statement and a citation for every rule. Not for: legal advice, tenant demand letters, repair cost estimates, pet deposits, rentals outside the US. Deterministic and source-cited: the same input gives the same result.
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City, for a city overlay where covered (e.g. 'Chicago'). Optional. | |
| as_of | No | Date for deadline status; defaults to today (UTC). Send YYYY-MM-DD for repeatable results. | |
| audit | No | Also return the run record and input/result hashes (an audit trail). Default false. | |
| state | Yes | US state, 2-letter code (e.g. 'CA'); a state name also works. | |
| county | No | TN county: act applies over 75,000 population by 2010 census (66-28-102(a)). Inferred from city only if unambiguous. | |
| returned | No | Prior refund/statement and date; timeliness assesses each duty and days late. | |
| furnished | No | The unit is rented furnished (California before AB 12: 3 months; Kansas: 1.5 months; Delaware: no cap). | |
| deductions | No | Charges to deduct (or the landlord's list). Explicit [] means no deductions and selects shorter periods (MT10 days, AK14); omit when unknown. | |
| move_in_on | No | Tenancy start (YYYY-MM-DD). Used for interest and, when an item's age is unknown, for depreciation. | |
| vacated_on | Yes | Day the tenant moved out and returned possession (YYYY-MM-DD). | |
| client_refs | No | Your own reference ids (e.g. unit_id, job_id). Echoed back, never used. | |
| deposit_usd | Yes | Security deposit held, dollars. | |
| lease_end_on | No | Scheduled lease end (YYYY-MM-DD), if different from actual tenancy end. Lost rent/lease-break charges use it. Deadlines use tenancy_ended_on, else move-out; scheduled end remains a later alternative. | |
| serve_pinned | No | Optional, with expect_ruleset. True asks us to answer under the ruleset version you named even when the rules have changed since, from that version's signed bundle; the result says so in served_from_bundle. We refuse a version older than 12 months, one a later correction or law change replaced for your state, or one we have no bundle for. Default false: the call fails whenever the rules have changed. | |
| tenancy_type | No | written_lease or at_will. ME 6033(2): written period<=30 days, at-will 21. MA 15 B(4):30 days from move-out(at-will) or lease end(written). Omitted when vacated_on precedes tenancy_ended_on: earlier at-will date leads; other date listed. | |
| documentation | No | What documentation you have; leave a field out when unknown. | |
| building_units | No | Units in the building. Some interest rules depend on it (NY 6+, IL 25+). | |
| expect_ruleset | No | Optional. The ruleset version you built against, as results carry it in provenance.ruleset_version (e.g. 'sd-2026.11.14'), or its sha256: hash. If the rules have changed since, the call fails (nothing computed, nothing charged) and says what is in force now, so you upgrade on your own schedule. Leave it out to answer under the current rules. | |
| owner_occupied | No | The landlord lives in the building (ME, NH, NJ and Chicago exempt small owner-occupied buildings; with building_units). | |
| small_landlord | No | CA AB 12: natural person or LLC of natural persons, at most 2 properties containing at most 4 units total, tenant not a service member;2 month cap. | |
| pet_deposit_usd | No | Pet portion of deposit_usd: outside caps in MO/AL/ND/Saint Paul; extra cap allowance of 1 month in HI/AK, half in KS, quarter in NE. | |
| monthly_rent_usd | No | Monthly rent, for the deposit cap check. | |
| prepaid_rent_usd | No | Advance rent beyond first month, held besides deposit_usd. Counts in AK/AZ/CA/CT/MD/MI/NY caps; earns interest in CT/MA(last-month rent)/MD/Chicago; Minneapolis cap becomes half-month. UT: send only unused balance, added to refund (57-17-3(2)(b)); elsewhere refund is deposit-only with prepaid-return warning. | |
| tenancy_ended_on | No | Actual tenancy end: lease end, early termination or accepted surrender (YYYY-MM-DD). End-of-tenancy deadlines use this; send a different scheduled end as lease_end_on. Legacy scheduled ends still work, with an earlier move-out alternative where applicable. | |
| tenant_abandoned | No | Abandoned or evicted: MD 8-203(h) clock starts at written demand; WA 59.18.280 at landlord awareness; LA 9:3251(C) one-month rule excluded. Omitted: inferred from tenant_gave_proper_notice=false. If vacated_on precedes tenancy_ended_on, earlier abandonment clock leads; other date listed. | |
| contractor_needed | No | Damage exceeds the deposit and needs a third-party contractor, and you said so in writing in time (Virginia, West Virginia: 15 more days). | |
| lease_return_days | No | Return period the lease sets, in days, where the statute lets a lease set one (Colorado up to 60, Idaho up to 30, Maine shorter). | |
| lease_term_months | No | Term of the lease in months (0 for month-to-month). Delaware's cap applies to leases of a year or more, New Mexico's to shorter ones. | |
| statement_sent_on | No | Itemized statement sent/delivered (YYYY-MM-DD), to assess timeliness; documentation.itemized_statement alone supplies no date. | |
| demand_received_on | No | Deposit demand received (YYYY-MM-DD): written in OK; first-class mail in MD (8-203(h)). Starts clocks in AZ/KS/OK/SC/MS. | |
| tenant_age_60_plus | No | An occupant is 60+ (NH 540-A:5,I: owner-occupied exemption excluded). tenant_age_62_plus=true implies this. | |
| tenant_age_62_plus | No | The tenant is 62 or older (Connecticut: a one-month cap). | |
| deposit_required_on | No | Colorado cap: date submission was required. Collection, move-out and as_of cannot establish the 2027 exception. | |
| new_tenant_rent_usd | No | Monthly rent the new tenant pays (with new_tenant_moved_in_on): the rent received for overlapping days is credited against rent claimed for them. | |
| third_party_managed | No | A third party manages the unit or collects rent for a fee. | |
| claim_notice_sent_on | No | Written claim notice sent (YYYY-MM-DD). FL: within 30 days of termination; DC:45. Balance due 30 days after timely notice; late notice does not count. | |
| deposit_collected_on | No | Collection date; defaults to move_in_on. CA AB12 uses it. CO: proxy only if deposit_required_on is absent; never proves the exception. | |
| landlord_units_owned | No | Rental units the landlord owns in all (Arkansas 5 or fewer, Georgia 10 or fewer, with third_party_managed, may be exempt). | |
| interest_paid_through | No | Interest already paid/credited through this date; accrual starts here (annual-payment rules, e.g. SF/LA/Berkeley/CT/MA). | |
| interest_rate_percent | No | Annual deposit-bank rate: NJ/ND/NH/NY/PA/Portland; MA uses lesser of bank rate or 5%. Omitted bank rate is unknown. IL 765 ILCS 715 uses published IDFPR rate instead. | |
| new_tenant_moved_in_on | No | Re-rented: new tenant's move-in date (YYYY-MM-DD). Can shorten WV/WI periods; rent overlapping the new tenancy is unrecoverable. | |
| rent_ordinance_covered | No | Covered by LA RSO or Berkeley Rent Ordinance: required for their deposit interest. Unknown interest stays beside, not inside, refund. | |
| owner_is_natural_person | No | GA 44-7-36 only: true=natural-person owner; false=LLC/corporation/partnership/trust, which cannot claim small-landlord exemption. Omitted: exemption stays an alternative. | |
| renter_notice_served_on | No | UT 57-17-3(3) renter notice served after deadline (YYYY-MM-DD). Owner gets 5 business days to comply (5); no notice means no 57-17-5 relief. | |
| landlord_filed_action_on | No | MI 554.613: date landlord sued for claimed damage (YYYY-MM-DD); sue or return balance within 45 days. Omitted assumes no suit. | |
| tenant_gave_proper_notice | No | A termination notice that meets the statute was given (Alaska: 14 days instead of 30 when nothing is deducted for damage). | |
| lease_signed_or_renewed_on | No | Current lease signing/last renewal (YYYY-MM-DD). GA cap from 2024-07-01; MD from 2024-10-01. Defaults move_in_on; warns later renewal may activate cap. | |
| deposit_in_separate_account | No | TN 66-28-301(a): deposit-only separate account. No account and no damage listing means none can be kept (c). | |
| nonstandard_provision_signed | No | Wisconsin: the tenant signed a separate NONSTANDARD RENTAL PROVISIONS document covering the charge (ATCP 134.06(3)(b)); false makes such charges 'no'. | |
| forwarding_address_received_on | No | Written forwarding address received (YYYY-MM-DD). Can start/hold clocks in TX, CT, IA, MN. | |
| tenant_gave_forwarding_address | No | False: no written forwarding address ever given. May relieve penalties in IL/PA/OH/SC/NH; DE also accepts a lease notice address. forwarding_address_received_on implies true. | |
| colorado_post_closing_occupancy | No | Colorado: buyer-landlord bought this residence from seller-tenant; both executed purchase-contract post-closing occupancy before the deposit was required. True confirms all facts; false excludes; null unknown. Exception from 2027-01-01. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| links | No | |
| result | Yes | |
| review | No | |
| reading | No | |
| signature | No | |
| input_hash | No | |
| client_refs | No | |
| deprecation | No | |
| result_hash | No | |
| request_hash | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, destructiveHint=false and openWorldHint=false, so the safety profile is covered. The description adds genuinely non-redundant traits: deterministic, source-cited, same input yields same result, and every rule comes with a citation — important for a compute-style tool whose output may be relied on. It does not mention the version-pinning failure mode (expect_ruleset) or that nothing is charged on failure, which would have pushed this higher.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with what it does, then inputs, then returns, then exclusions, then the determinism guarantee. Every sentence carries distinct information and nothing is repeated from the schema verbatim beyond the three required field names, which serve as a quick orientation.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a 52-parameter, deeply nested tool, the description covers purpose, inputs, outputs, exclusions and determinism, and an output schema exists so return values need no further explanation. Gaps are minor: no mention of audit mode, client_refs echoing, or the ruleset-version contract, all of which live only in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% across 52 parameters with rich per-field statute citations, so the schema does the heavy lifting. The description names the three required inputs (state, deposit_usd, vacated_on) and groups the optionals (city, monthly_rent_usd, move_in_on, deductions, clock-start dates, as_of), which helps prioritization but adds no syntax or semantics beyond the schema. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource (settles a US residential security deposit after move-out) plus the governing scope: state statute across 50 states and DC, with covered city ordinances layered on. The 'Not for' list (legal advice, demand letters, repair cost estimates, pet deposits, non-US rentals) separates it from property_turnover_quick_estimate and from legal-advice framing without the agent needing to open a schema.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The closing 'Not for' sentence gives explicit exclusions, which is strong when-not guidance. When-to-use is clear from the first sentence (post-move-out deposit settlement). What is missing is naming the sibling to use instead — e.g. deposit_settlement_rules for a pure statutory lookup — so the agent must infer the routing.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
property_turnover_issue_codesLook up turnover issue codesARead-onlyIdempotentInspect
The issue-code catalog for rental-unit turnover findings (group.issue codes such as carpet.pet_urine). Inputs, all optional: q (search words or a code), group (e.g. flooring), limit, include_aliases; query and area are older names for q and group. With no arguments it returns every code in short form (code, name, group, default extent, refer-out). With q it returns the best matches with description, aliases, not_when, rooms and examples. Returns the codes, the match count, every group, and general.manual_quote, the code for a condition no other code fits. Not for: cost estimates, legal or security-deposit questions, work other than rental turnover. Deterministic and source-cited: the same input gives the same result.
| Name | Required | Description | Default |
|---|---|---|---|
| q | No | Words to search for in the codes, names, aliases, descriptions and examples, e.g. 'pet stain carpet'. Hits come back with full detail. Leave out to list every code in short form. | |
| area | No | Older name for group; use group. | |
| audit | No | Also return the run record and input/result hashes (an audit trail). Default false. | |
| group | No | Only codes in this group, e.g. 'flooring' or 'walls' (a part of the unit, not a room). `groups` in the answer lists them all. | |
| limit | No | Most codes to return. Default: 8 with q, every code without. | |
| query | No | Older name for q; use q. | |
| client_refs | No | Your own reference ids (e.g. unit_id, job_id). Echoed back, never used. | |
| serve_pinned | No | Optional, with expect_ruleset. True asks us to answer under the ruleset version you named even when the rules have changed since, from that version's signed bundle; the result says so in served_from_bundle. We refuse a version older than 12 months, one a later correction or law change replaced for your state, or one we have no bundle for. Default false: the call fails whenever the rules have changed. | |
| expect_ruleset | No | Optional. The ruleset version you built against, as results carry it in provenance.ruleset_version (e.g. 'sd-2026.11.14'), or its sha256: hash. If the rules have changed since, the call fails (nothing computed, nothing charged) and says what is in force now, so you upgrade on your own schedule. Leave it out to answer under the current rules. | |
| include_aliases | No | Also return aliases in the short list (search hits always carry them). |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| links | No | |
| result | Yes | |
| review | No | |
| reading | No | |
| signature | No | |
| input_hash | No | |
| client_refs | No | |
| deprecation | No | |
| result_hash | No | |
| request_hash | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint/idempotentHint/destructiveHint=false, so safety is covered; the description adds that results are 'deterministic and source-cited' and enumerates the return envelope (codes, match count, groups, general.manual_quote). It says nothing about the ruleset-pinning/failure behavior (expect_ruleset, serve_pinned), which is left entirely to the schema.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loads the resource and the argument-driven behavior, then closes with exclusions and a determinism note; nearly every clause carries information. The 'Inputs, all optional' sentence is somewhat listy, but not wasteful.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With an output schema present the description needn't detail return shape, yet it still summarizes it; combined with the exclusions and optional-input overview an agent can call this correctly. The one substantive gap is the ruleset-version contract, which lives only in the schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so every parameter is already documented, and the description's mention of q, group, limit, include_aliases and the query/area legacy aliases only restates the schema. It adds no syntax, interaction, or behavioral meaning for the more unusual parameters (audit, serve_pinned, expect_ruleset), so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Names a specific resource ('the issue-code catalog for rental-unit turnover findings') and scopes it with a concrete example ('carpet.pet_urine'). It also explicitly marks the boundary against siblings with 'Not for: cost estimates, legal or security-deposit questions, work other than rental turnover', which separates it from property_turnover_quick_estimate and the deposit_settlement tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Gives concrete usage modes: 'With no arguments it returns every code in short form' vs. 'With q it returns the best matches with description, aliases...'. Exclusions are stated by domain but no sibling tool is named as the alternative to redirect to, which is the only missing piece.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
property_turnover_quick_estimateQuick turnover estimate (start here)ARead-onlyIdempotentInspect
Estimates what it costs to turn over a US rental unit after move-out; the first tool for a turnover estimate. Inputs: a 5-digit ZIP, bedrooms, bathrooms and the issues in plain English (e.g. "stained carpet in both bedrooms"), which may come from the user's photos; optional unit type, size, year built. Returns a priced make-ready estimate: repair tasks by trade with low/expected/high costs for the ZIP, priorities, refer-outs to licensed professionals, assumptions and links. An AI model reads the issues; the answer is a draft listing what it read (reading), and words it cannot place bill nothing. Not for: diagnosing hazards, legal advice on deposits, remodel bids, properties outside the US. The same findings under the same ruleset give the same result; AI never sets a number.
| Name | Required | Description | Default |
|---|---|---|---|
| zip | Yes | The user's 5-digit US ZIP code. If it is missing or not exactly 5 digits, ask the user; never guess, pad or correct it. | |
| pets | No | Did pets live in the unit? true adds an optional flea treatment. | |
| audit | No | Also return the run record and input/result hashes (an audit trail). Default false. | |
| sq_ft | No | Interior sq ft. | |
| carpet | No | Is there wall-to-wall carpet? | |
| detail | No | summary (default, small) or full (every line). | summary |
| issues | No | What was found in plain English, e.g. ['stained carpet in both bedrooms', 'nail holes everywhere', 'oven is filthy']. Read like pasted notes: an entry may hold several conditions ('carpet stained, nail holes'; one finding each); a room before or after the condition sets the location ('Bedroom 2 carpet torn', 'mold in bathroom'); a written count sets the quantity ('3 blinds broken'); an entry saying there is no work ('no mold', 'leak fixed by tenant') is reported as not billed. All the issues together may hold up to 12,000 characters; send longer notes in more than one request. | |
| retain | No | Optional (contract 0.5.1). false: keep none of this request's text, so the AI reader's answer for the issues is not stored either. By default the text is kept with contact details and access codes removed, to improve matching; the estimate is the same either way. | |
| profile | No | minimum (rent-ready basics) | standard | premium (higher finish). | standard |
| bedrooms | Yes | 0 for a studio. | |
| bathrooms | Yes | Half baths count as 0.5. | |
| unit_type | No | Single-family homes and townhomes get house-sized defaults (floor area, locks). | apartment |
| walk_date | No | The walk-through date; dated or aged items are judged against it. Omit if unknown. | |
| price_tier | No | bulk_contract (portfolio contract prices) | pm_vendor (default: a property manager buying turns from local vendors) | retail_one_off (an owner hiring one contractor). | pm_vendor |
| year_built | No | Drives lead-paint (pre-1978) handling. | |
| client_refs | No | Your own reference ids (e.g. unit_id, job_id). Echoed back, never used. | |
| serve_pinned | No | Optional, with expect_ruleset. True asks us to answer under the ruleset version you named even when the rules have changed since, from that version's signed bundle; the result says so in served_from_bundle. We refuse a version older than 12 months, one a later correction or law change replaced for your state, or one we have no bundle for. Default false: the call fails whenever the rules have changed. | |
| expect_ruleset | No | Optional. The ruleset version you built against, as results carry it in provenance.ruleset_version (e.g. 'sd-2026.11.14'), or its sha256: hash. If the rules have changed since, the call fails (nothing computed, nothing charged) and says what is in force now, so you upgrade on your own schedule. Leave it out to answer under the current rules. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| links | No | |
| result | Yes | |
| review | No | |
| reading | No | |
| signature | No | |
| input_hash | No | |
| client_refs | No | |
| deprecation | No | |
| result_hash | No | |
| request_hash | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover read-only/idempotent/non-destructive, and the description still adds real behavioral context: an AI model reads the free-text issues, the answer is a draft of what was read, unplaceable words bill nothing, and the same findings under the same ruleset yield the same result with the AI never setting a number. That determinism and trust caveat is exactly the kind of disclosure annotations cannot carry.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Front-loaded with purpose, then inputs, then returns, then exclusions — a sensible order with no filler. It is dense with clause-heavy sentences and repeats some return detail the output schema already provides, but nothing is wasted.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For an 18-parameter, nested-schema tool with an output schema and full annotation coverage, the description supplies what structured data cannot: domain limits (US only, post move-out), the AI-reading caveat, determinism guarantees, and explicit exclusions. Nothing an agent needs to call it correctly is missing.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
With 100% schema description coverage across 18 parameters, the baseline is 3; the description goes slightly beyond by framing the inputs (ZIP, beds, baths, plain-English issues, optional unit type/size/year) and noting the issues may be derived from the user's photos, a provenance detail the schema does not state.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
States a specific verb and resource ("estimates what it costs to turn over a US rental unit after move-out") plus the entry-point role ("the first tool for a turnover estimate"). The explicit "Not for" list (hazard diagnosis, deposit legal advice, remodel bids, non-US properties) carves it away from the deposit_settlement_* siblings and from scope/issue-code reference tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Clear when-to-use (post move-out turnover costing, call this first) and explicit when-not-to-use exclusions. It does not name property_turnover_scope or property_turnover_issue_codes as alternatives or explain the handoff to them, so routing across the turnover family is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
property_turnover_scopeScope a property turnoverARead-onlyIdempotentInspect
Turns move-out inspection findings for a US rental unit into a priced make-ready scope. For a first estimate use property_turnover_quick_estimate (plain words). Inputs: property (ZIP, bedrooms, bathrooms, optional details) and findings, each an issue code from property_turnover_issue_codes with rooms, status, quantity and the original words (source_text); optional rate_card, decisions, detail. Returns tasks by trade, low/expected/high costs, priorities, vendor scopes, refer-outs, assumptions, unknowns and download links. Not for: diagnosing hazards, legal advice on deposits, remodel bids, properties outside the US. Deterministic and source-cited: the same input gives the same result.
| Name | Required | Description | Default |
|---|---|---|---|
| read | No | Deprecated and ignored: scope reads no free text. | parser |
| audit | No | Also return the run record and input/result hashes (an audit trail). Default false. | |
| detail | No | summary (small): totals, trade scopes, lines tied to findings. full: all. | summary |
| retain | No | false: keep none of this request's text. | |
| findings | No | Move-out inspection findings, one per observed condition, coded. | |
| property | Yes | The unit: ZIP, size, type and year built. | |
| tax_rate | No | Applied to all lines, e.g. 0.07. | |
| decisions | No | Approve, decline or defer lines or findings from an earlier scope. | |
| rate_card | No | Your own prices by trade or task; they replace the regional library prices. | |
| standards | No | Finish profile, price tier and overrides. | |
| client_refs | No | Your own reference ids (e.g. unit_id, job_id). Echoed back, never used. | |
| constraints | No | Target ready date, whether the unit is occupied, access notes. | |
| serve_pinned | No | Optional, with expect_ruleset. True asks us to answer under the ruleset version you named even when the rules have changed since, from that version's signed bundle; the result says so in served_from_bundle. We refuse a version older than 12 months, one a later correction or law change replaced for your state, or one we have no bundle for. Default false: the call fails whenever the rules have changed. | |
| trade_vendors | No | Vendor (name, contact) to put on each trade's lines. | |
| expect_ruleset | No | Optional. The ruleset version you built against, as results carry it in provenance.ruleset_version (e.g. 'sd-2026.11.14'), or its sha256: hash. If the rules have changed since, the call fails (nothing computed, nothing charged) and says what is in force now, so you upgrade on your own schedule. Leave it out to answer under the current rules. |
Output Schema
| Name | Required | Description |
|---|---|---|
| run | No | |
| links | No | |
| result | Yes | |
| review | No | |
| reading | No | |
| signature | No | |
| input_hash | No | |
| client_refs | No | |
| deprecation | No | |
| result_hash | No | |
| request_hash | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and openWorldHint=false, so the safety profile is covered. The description adds useful behavioral context beyond the annotations: it is deterministic and source-cited, and it briefly characterizes the return content (tasks by trade, cost ranges, priorities, vendor scopes, refer-outs, assumptions, unknowns). It does not discuss permissions, rate limits, or latency, but those are less central here.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is front-loaded with the core purpose and packs exclusions, inputs, outputs, and determinism into a compact block. It is dense but efficient, with no obvious filler sentences.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a complex 15-parameter tool with nested schemas and an output schema, the description covers purpose, key inputs, return categories, alternatives, exclusions, and the deterministic contract. An agent has enough context to select and invoke it correctly, relying on the structured schema for field-level details.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents the 15 parameters in detail. The description only summarizes the main inputs (property ZIP/bedrooms/bathrooms, findings with issue codes, optional rate_card/decisions/detail), adding little beyond what the schema and nested definitions provide. A baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a precise verb and resource: turning move-out inspection findings into a priced make-ready scope for a US rental unit. It distinguishes itself from sibling tools by naming property_turnover_quick_estimate for a first estimate and referencing property_turnover_issue_codes for issue codes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
It explicitly names an alternative for a different use case ('For a first estimate use property_turnover_quick_estimate') and provides a clear not-for list (hazard diagnosis, deposit legal advice, remodel bids, non-US properties). This gives the agent both when-to-use and when-not-to-use guidance.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
5 tool updates
- Changed
deposit_settlement_rules35 fields changed- removed
Output schema / $defsRemoved value: -{ - "Alternative": { - "additionalProperties": false, - "properties": { - "combine": { - "default": "replace", - "enum": [ - "replace", - "later_date", - "earlier_date", - "extend" - ], - "type": "string" - }, - "condition": { - "type": "string" - }, - "counting": { - "anyOf": [ - { - "enum": [ - "calendar", - "business" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "days": { - "anyOf": [ - { - "minimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "demand_within_days": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "effective_before": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "effective_by": { - "default": "termination", - "enum": [ - "termination", - "conduct" - ], - "type": "string" - }, - "effective_on_or_after": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "extends": { - "default": "deadline", - "enum": [ - "deadline", - "itemization" - ], - "type": "string" - }, - "listed_if": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "listed_warning": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "months": { - "anyOf": [ - { - "minimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "notice_within_days": { - "anyOf": [ - { - "minimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "pending": { - "default": "not_started", - "enum": [ - "not_started", - "notice_date" - ], - "type": "string" - }, - "requires": { - "default": [], - "items": { - "enum": [ - "no_deductions", - "with_deductions", - "damage_deductions", - "no_damage_deductions", - "lease_specifies_longer", - "lease_specifies_shorter", - "tenant_gave_notice", - "contractor_needed", - "damages_exceed_deposit", - "written_lease", - "at_will", - "abandoned", - "charges_only", - "relet_before_end" - ], - "type": "string" - }, - "type": "array" - }, - "start": { - "anyOf": [ - { - "enum": [ - "vacate", - "termination", - "later_of_vacate_and_termination", - "forwarding_address", - "demand", - "later_of_termination_and_address", - "latest_of_termination_possession_and_address", - "earlier_of_termination_and_surrender", - "surrender_or_termination_first", - "new_tenant_occupancy", - "termination_possession_and_demand", - "claim_notice" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "condition" - ], - "type": "object" - }, - "BrokenLease": { - "additionalProperties": false, - "properties": { - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "quote": { - "maxLength": 600, - "type": "string" - }, - "requires_notice": { - "type": "boolean" - }, - "section": { - "type": "string" - }, - "source": { - "type": "string" - } - }, - "required": [ - "requires_notice", - "section", - "quote", - "source" - ], - "type": "object" - }, - "CapLimits": { - "additionalProperties": false, - "properties": { - "furnished_months": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "months_rent": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "type": "object" - }, - "Change": { - "additionalProperties": false, - "properties": { - "effective_on": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "source": { - "type": "string" - }, - "text": { - "type": "string" - } - }, - "required": [ - "text", - "source" - ], - "type": "object" - }, - "Citation": { - "properties": { - "accessed": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "quote": { - "type": "string" - }, - "rule": { - "type": "string" - }, - "section": { - "type": "string" - }, - "source_title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "verbatim": { - "default": true, - "type": "boolean" - } - }, - "required": [ - "rule", - "section", - "quote" - ], - "type": "object" - }, - "CityRules": { - "properties": { - "additional_penalty": { - "anyOf": [ - { - "$ref": "#/$defs/PenaltyRule" - }, - { - "type": "null" - } - ], - "default": null - }, - "applicability": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "deductions": { - "anyOf": [ - { - "$ref": "#/$defs/DeductionRules" - }, - { - "type": "null" - } - ], - "default": null - }, - "deposit_cap": { - "anyOf": [ - { - "$ref": "#/$defs/DepositCap" - }, - { - "type": "null" - } - ], - "default": null - }, - "depreciation_schedule": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "forfeiture": { - "anyOf": [ - { - "items": { - "$ref": "#/$defs/Forfeiture" - }, - "type": "array" - }, - { - "type": "null" - } - ], - "default": null - }, - "id": { - "type": "string" - }, - "interest": { - "anyOf": [ - { - "$ref": "#/$defs/InterestRule" - }, - { - "type": "null" - } - ], - "default": null - }, - "itemization": { - "anyOf": [ - { - "$ref": "#/$defs/Itemization" - }, - { - "type": "null" - } - ], - "default": null - }, - "name": { - "type": "string" - }, - "notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "penalty": { - "anyOf": [ - { - "$ref": "#/$defs/PenaltyRule" - }, - { - "type": "null" - } - ], - "default": null - }, - "return_rule": { - "anyOf": [ - { - "$ref": "#/$defs/ReturnRule" - }, - { - "type": "null" - } - ], - "default": null - }, - "state": { - "type": "string" - } - }, - "required": [ - "id", - "name", - "state" - ], - "type": "object" - }, - "CleaningRule": { - "additionalProperties": false, - "properties": { - "basis": { - "enum": [ - "named", - "damage" - ], - "type": "string" - }, - "condition": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "quote": { - "maxLength": 600, - "type": "string" - }, - "routine": { - "default": "barred", - "enum": [ - "barred", - "lease", - "reasonable" - ], - "type": "string" - }, - "routine_signed_provision": { - "default": false, - "type": "boolean" - }, - "section": { - "type": "string" - }, - "source": { - "type": "string" - }, - "unless_no_notice": { - "default": false, - "type": "boolean" - }, - "verbatim": { - "default": true, - "type": "boolean" - } - }, - "required": [ - "basis", - "section", - "quote", - "source" - ], - "type": "object" - }, - "ContractDamages": { - "additionalProperties": false, - "properties": { - "categories": { - "items": { - "enum": [ - "unpaid_rent", - "unpaid_utilities", - "cleaning", - "carpet", - "flooring", - "paint", - "blinds_window_coverings", - "appliance", - "fixture_or_hardware", - "wall_or_door_repair", - "key_or_lock", - "late_fees", - "lease_break_fee", - "moving_and_storage", - "reletting_costs", - "trash_and_abandoned_items", - "other_damage", - "other" - ], - "type": "string" - }, - "type": "array" - }, - "lead": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "quote": { - "maxLength": 400, - "type": "string" - }, - "section": { - "type": "string" - }, - "source": { - "type": "string" - } - }, - "required": [ - "section", - "quote", - "source", - "categories" - ], - "type": "object" - }, - "DeductionRules": { - "additionalProperties": false, - "properties": { - "allowed": { - "default": [], - "items": { - "enum": [ - "unpaid_rent", - "unpaid_utilities", - "late_fees", - "lease_break_fee", - "cleaning_to_move_in_condition", - "damage_beyond_wear", - "future_defaults_under_lease", - "other_lease_obligations", - "moving_and_storage", - "real_estate_tax_increase", - "removal_of_items_left" - ], - "type": "string" - }, - "type": "array" - }, - "allowed_detail": { - "default": [], - "items": { - "type": "string" - }, - "type": "array" - }, - "cleaning": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "amendment": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "from": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ] - }, - "governed_by": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "source": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "until": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ] - }, - "value": { - "$ref": "#/$defs/CleaningRule" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "type": "array" - }, - { - "$ref": "#/$defs/CleaningRule" - }, - { - "items": { - "additionalProperties": false, - "properties": { - "basis": { - "enum": [ - "named", - "damage" - ], - "type": "string" - }, - "condition": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "effective_on": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "quote": { - "maxLength": 600, - "type": "string" - }, - "routine": { - "default": "barred", - "enum": [ - "barred", - "lease", - "reasonable" - ], - "type": "string" - }, - "routine_signed_provision": { - "default": false, - "type": "boolean" - }, - "section": { - "type": "string" - }, - "source": { - "type": "string" - }, - "unless_no_notice": { - "default": false, - "type": "boolean" - }, - "verbatim": { - "default": true, - "type": "boolean" - } - }, - "required": [ - "basis", - "section", - "quote", - "source" - ], - "type": "object" - }, - "type": "array" - } - ], - "default": [] - }, - "contract_damages": { - "anyOf": [ - { - "$ref": "#/$defs/ContractDamages" - }, - { - "type": "null" - } - ], - "default": null - }, - "depreciation": { - "default": "silent", - "enum": [ - "required", - "guidance", - "silent" - ], - "type": "string" - }, - "depreciation_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "depreciation_only": { - "default": [], - "items": { - "enum": [ - "unpaid_rent", - "unpaid_utilities", - "cleaning", - "carpet", - "flooring", - "paint", - "blinds_window_coverings", - "appliance", - "fixture_or_hardware", - "wall_or_door_repair", - "key_or_lock", - "late_fees", - "lease_break_fee", - "moving_and_storage", - "reletting_costs", - "trash_and_abandoned_items", - "other_damage", - "other" - ], - "type": "string" - }, - "type": "array" - }, - "discovery_cutoff": { - "anyOf": [ - { - "$ref": "#/$defs/DiscoveryCutoff" - }, - { - "type": "null" - } - ], - "default": null - }, - "excluded": { - "default": [], - "items": { - "$ref": "#/$defs/Exclusion" - }, - "type": "array" - }, - "late_fee": { - "anyOf": [ - { - "$ref": "#/$defs/LateFeeRule" - }, - { - "type": "null" - } - ], - "default": null - }, - "lease_authorized": { - "anyOf": [ - { - "$ref": "#/$defs/LeaseAuthorized" - }, - { - "type": "null" - } - ], - "default": null - }, - "lease_break": { - "anyOf": [ - { - "$ref": "#/$defs/LeaseBreakRule" - }, - { - "type": "null" - } - ], - "default": null - }, - "mitigation_section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "nonstandard_only": { - "default": [], - "items": { - "enum": [ - "unpaid_rent", - "unpaid_utilities", - "cleaning", - "carpet", - "flooring", - "paint", - "blinds_window_coverings", - "appliance", - "fixture_or_hardware", - "wall_or_door_repair", - "key_or_lock", - "late_fees", - "lease_break_fee", - "moving_and_storage", - "reletting_costs", - "trash_and_abandoned_items", - "other_damage", - "other" - ], - "type": "string" - }, - "type": "array" - }, - "nonstandard_section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "normal_wear_excluded": { - "default": true, - "type": "boolean" - }, - "not_allowed_warning": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "termination_notice_quote": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "termination_notice_section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "utilities": { - "anyOf": [ - { - "$ref": "#/$defs/UtilityLimit" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "type": "object" - }, - "DepositCap": { - "additionalProperties": false, - "properties": { - "advance_rent_exempt_months": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "before_furnished_months": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "before_months_rent": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "cap_limits": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "amendment": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "from": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ] - }, - "governed_by": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "source": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "until": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ] - }, - "value": { - "$ref": "#/$defs/CapLimits" - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "type": "array" - }, - { - "$ref": "#/$defs/CapLimits" - }, - { - "type": "null" - } - ], - "default": null - }, - "counts_prepaid_rent": { - "default": false, - "type": "boolean" - }, - "effective_by": { - "default": "collected", - "enum": [ - "collected", - "lease_signed", - "required" - ], - "type": "string" - }, - "effective_on": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "excess_remedy": { - "anyOf": [ - { - "$ref": "#/$defs/ExcessRemedy" - }, - { - "type": "null" - } - ], - "default": null - }, - "excludes_pet_deposit": { - "default": false, - "type": "boolean" - }, - "furnished_exempt": { - "default": false, - "type": "boolean" - }, - "furnished_months": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "later_after_months": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "later_months_rent": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "max_rent_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "max_term_months": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "min_term_months": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "minimum_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "months_rent": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "or_demanded_before": { - "default": false, - "type": "boolean" - }, - "periodic_after_months": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "pet_allowance_months": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "pet_cap_months": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "post_closing_occupancy_from": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "prepaid_cap_months": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "prepaid_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "source": { - "type": "string" - }, - "variant_duty": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "variant_extra_months": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "variant_months": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "variant_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "variant_when": { - "anyOf": [ - { - "enum": [ - "small_landlord", - "tenant_age_62_plus", - "month_to_month" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "variants": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "source" - ], - "type": "object" - }, - "Deprecation": { - "properties": { - "field": { - "type": "string" - }, - "until": { - "format": "date", - "type": "string" - }, - "use": { - "type": "string" - } - }, - "required": [ - "field", - "until", - "use" - ], - "type": "object" - }, - "DescribeEach": { - "additionalProperties": false, - "properties": { - "quote": { - "maxLength": 400, - "type": "string" - }, - "rent_only_exempt": { - "default": false, - "type": "boolean" - }, - "section": { - "type": "string" - }, - "source": { - "type": "string" - } - }, - "required": [ - "section", - "quote", - "source" - ], - "type": "object" - }, - "DiscoveryCutoff": { - "additionalProperties": false, - "properties": { - "days_after_new_tenant": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "days_after_vacate": { - "exclusiveMinimum": 0, - "type": "integer" - }, - "quote": { - "maxLength": 600, - "type": "string" - }, - "section": { - "type": "string" - }, - "source": { - "type": "string" - } - }, - "required": [ - "days_after_vacate", - "section", - "quote", - "source" - ], - "type": "object" - }, - "ExcessRemedy": { - "additionalProperties": false, - "properties": { - "multiple": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - }, - "quote": { - "maxLength": 400, - "type": "string" - }, - "section": { - "type": "string" - }, - "source": { - "type": "string" - } - }, - "required": [ - "multiple", - "section", - "quote", - "source" - ], - "type": "object" - }, - "Exclusion": { - "additionalProperties": false, - "properties": { - "category": { - "enum": [ - "unpaid_rent", - "unpaid_utilities", - "cleaning", - "carpet", - "flooring", - "paint", - "blinds_window_coverings", - "appliance", - "fixture_or_hardware", - "wall_or_door_repair", - "key_or_lock", - "late_fees", - "lease_break_fee", - "moving_and_storage", - "reletting_costs", - "trash_and_abandoned_items", - "other_damage", - "other" - ], - "type": "string" - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "quote": { - "maxLength": 600, - "type": "string" - }, - "section": { - "type": "string" - }, - "source": { - "type": "string" - } - }, - "required": [ - "category", - "section", - "quote", - "source" - ], - "type": "object" - }, - "Fallback": { - "additionalProperties": false, - "properties": { - "days": { - "exclusiveMinimum": 0, - "type": "integer" - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "section": { - "type": "string" - }, - "start": { - "default": "vacate", - "enum": [ - "vacate", - "termination", - "later_of_vacate_and_termination", - "forwarding_address", - "demand", - "later_of_termination_and_address", - "latest_of_termination_possession_and_address", - "earlier_of_termination_and_surrender", - "surrender_or_termination_first", - "new_tenant_occupancy", - "termination_possession_and_demand", - "claim_notice" - ], - "type": "string" - } - }, - "required": [ - "days", - "section" - ], - "type": "object" - }, - "Forfeiture": { - "additionalProperties": false, - "properties": { - "account_leg": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "address_relief_days": { - "anyOf": [ - { - "minimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "bars": { - "default": "all", - "enum": [ - "all", - "damage" - ], - "type": "string" - }, - "condition": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "contested": { - "default": [], - "items": { - "enum": [ - "unpaid_rent", - "unpaid_utilities", - "cleaning", - "carpet", - "flooring", - "paint", - "blinds_window_coverings", - "appliance", - "fixture_or_hardware", - "wall_or_door_repair", - "key_or_lock", - "late_fees", - "lease_break_fee", - "moving_and_storage", - "reletting_costs", - "trash_and_abandoned_items", - "other_damage", - "other" - ], - "type": "string" - }, - "type": "array" - }, - "cure_business_days": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "cure_section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "days": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "days_section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "doc_legs": { - "default": [], - "items": { - "enum": [ - "itemized_statement", - "move_in_condition_statement", - "move_out_list" - ], - "type": "string" - }, - "type": "array" - }, - "effective_on": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "excuse_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "excuse_section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "exempt": { - "default": [], - "items": { - "enum": [ - "unpaid_rent", - "unpaid_utilities", - "cleaning", - "carpet", - "flooring", - "paint", - "blinds_window_coverings", - "appliance", - "fixture_or_hardware", - "wall_or_door_repair", - "key_or_lock", - "late_fees", - "lease_break_fee", - "moving_and_storage", - "reletting_costs", - "trash_and_abandoned_items", - "other_damage", - "other" - ], - "type": "string" - }, - "type": "array" - }, - "gate": { - "default": "none", - "enum": [ - "none", - "bad_faith", - "unreasonable", - "willful", - "presumption", - "tenant_notice", - "court" - ], - "type": "string" - }, - "in_full_quote": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "keeps_claim": { - "default": false, - "type": "boolean" - }, - "keeps_claim_for": { - "default": "all", - "enum": [ - "all", - "damage" - ], - "type": "string" - }, - "keeps_claim_section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "late_condition_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "late_refund_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "no_address_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "no_address_relief": { - "anyOf": [ - { - "enum": [ - "unsettled", - "stands" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "not_if_abandoned": { - "default": false, - "type": "boolean" - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "nothing_withheld_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "notice_relief": { - "anyOf": [ - { - "$ref": "#/$defs/NoticeRelief" - }, - { - "type": "null" - } - ], - "default": null - }, - "quote": { - "maxLength": 600, - "type": "string" - }, - "rent_only": { - "anyOf": [ - { - "enum": [ - "exempt", - "undisputed" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "rent_only_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "section": { - "type": "string" - }, - "short_interest_contested": { - "default": false, - "type": "boolean" - }, - "source": { - "type": "string" - }, - "tenant_notice_relief": { - "default": false, - "type": "boolean" - }, - "trigger": { - "enum": [ - "late_statement", - "late_return", - "late_statement_or_return", - "late_claim_notice", - "late_action_or_return", - "not_in_input", - "missing_documentation", - "receipts_after_estimate" - ], - "type": "string" - }, - "verbatim": { - "default": true, - "type": "boolean" - } - }, - "required": [ - "trigger", - "section", - "quote", - "source" - ], - "type": "object" - }, - "Guide": { - "properties": { - "accessed": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "publisher": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "title": { - "type": "string" - }, - "url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "title" - ], - "type": "object" - }, - "InterestRule": { - "additionalProperties": false, - "properties": { - "accrual_floor": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "accrual_floor_section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "accrues_after_months": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "bank_rate_lesser": { - "default": false, - "type": "boolean" - }, - "base": { - "default": "deposit", - "enum": [ - "deposit", - "excess_over_max_50_or_month" - ], - "type": "string" - }, - "compound": { - "default": "none", - "enum": [ - "none", - "annual" - ], - "type": "string" - }, - "condition": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "count_last_day": { - "default": false, - "type": "boolean" - }, - "due_days": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "due_section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "due_start": { - "default": "vacate", - "enum": [ - "vacate", - "termination", - "later_of_vacate_and_termination", - "forwarding_address", - "demand", - "later_of_termination_and_address", - "latest_of_termination_possession_and_address", - "earlier_of_termination_and_surrender", - "surrender_or_termination_first", - "new_tenant_occupancy", - "termination_possession_and_demand", - "claim_notice" - ], - "type": "string" - }, - "fee_percent": { - "anyOf": [ - { - "minimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "formula": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "held_until": { - "default": "vacate", - "enum": [ - "vacate", - "return" - ], - "type": "string" - }, - "includes_prepaid_rent": { - "default": false, - "type": "boolean" - }, - "legacy_before": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "legacy_interval_months": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "legacy_rate": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "method": { - "default": "simple", - "enum": [ - "simple", - "monthly_by_year", - "months_to_compliance", - "lease_years", - "per_window", - "anniversary_years", - "monthly" - ], - "type": "string" - }, - "min_deposit_months_rent": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "min_deposit_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "min_lease_term_months": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "min_tenancy_days": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "min_tenancy_months": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "min_tenancy_strict": { - "default": false, - "type": "boolean" - }, - "min_units": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "minimum_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "ordinance_coverage": { - "default": false, - "type": "boolean" - }, - "payable": { - "anyOf": [ - { - "enum": [ - "annually", - "at_end" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "rate": { - "anyOf": [ - { - "enum": [ - "fixed_percent", - "statutory_index", - "bank_rate" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "rate_published_by": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "rate_schedule": { - "anyOf": [ - { - "items": { - "additionalProperties": false, - "properties": { - "amendment": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "from": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ] - }, - "governed_by": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "source": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "until": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ] - }, - "value": { - "anyOf": [ - { - "minimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - } - }, - "required": [ - "value" - ], - "type": "object" - }, - "type": "array" - }, - { - "minimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "items": { - "additionalProperties": false, - "properties": { - "from": { - "format": "date", - "type": "string" - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "rate_value": { - "anyOf": [ - { - "minimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - }, - "source": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "to": { - "format": "date", - "type": "string" - } - }, - "required": [ - "from", - "to", - "rate_value" - ], - "type": "object" - }, - "type": "array" - } - ], - "default": [] - }, - "rate_value": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "rate_year": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "required": { - "anyOf": [ - { - "type": "boolean" - }, - { - "const": "conditional", - "type": "string" - } - ] - }, - "section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "year_starts": { - "anyOf": [ - { - "pattern": "^\\d{2}-\\d{2}$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "required" - ], - "type": "object" - }, - "Itemization": { - "additionalProperties": false, - "properties": { - "after_refund": { - "default": false, - "type": "boolean" - }, - "days": { - "anyOf": [ - { - "minimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "describe_each": { - "anyOf": [ - { - "$ref": "#/$defs/DescribeEach" - }, - { - "type": "null" - } - ], - "default": null - }, - "effective_on": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "months": { - "anyOf": [ - { - "minimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "move_in_photos": { - "anyOf": [ - { - "$ref": "#/$defs/MoveInPhotos" - }, - { - "type": "null" - } - ], - "default": null - }, - "move_in_statement": { - "anyOf": [ - { - "$ref": "#/$defs/MoveInStatement" - }, - { - "type": "null" - } - ], - "default": null - }, - "move_out_list": { - "anyOf": [ - { - "$ref": "#/$defs/MoveOutList" - }, - { - "type": "null" - } - ], - "default": null - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "on_full_refund": { - "default": false, - "type": "boolean" - }, - "photos": { - "anyOf": [ - { - "$ref": "#/$defs/Photos" - }, - { - "type": "null" - } - ], - "default": null - }, - "receipts": { - "anyOf": [ - { - "$ref": "#/$defs/Receipts" - }, - { - "type": "null" - } - ], - "default": null - }, - "refund_with_list": { - "default": false, - "type": "boolean" - }, - "required": { - "default": true, - "type": "boolean" - }, - "section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "start": { - "anyOf": [ - { - "enum": [ - "vacate", - "termination", - "later_of_vacate_and_termination", - "forwarding_address", - "demand", - "later_of_termination_and_address", - "latest_of_termination_possession_and_address", - "earlier_of_termination_and_surrender", - "surrender_or_termination_first", - "new_tenant_occupancy", - "termination_possession_and_demand", - "claim_notice" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "with_refund": { - "default": true, - "type": "boolean" - } - }, - "type": "object" - }, - "JurisdictionRef": { - "properties": { - "city": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "city_overlay": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "city_rules_checked": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null - }, - "covered": { - "type": "boolean" - }, - "state": { - "type": "string" - }, - "state_name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "verified": { - "type": "boolean" - } - }, - "required": [ - "state", - "covered", - "verified" - ], - "type": "object" - }, - "LateFeeRule": { - "additionalProperties": false, - "properties": { - "agreements_from": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "combine": { - "default": "greater", - "enum": [ - "greater", - "lesser", - "plus" - ], - "type": "string" - }, - "conditional": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "deposit_use": { - "default": false, - "type": "boolean" - }, - "flat_usd": { - "anyOf": [ - { - "minimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "month_to_month_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "over_cap_penalties": { - "default": [], - "items": { - "$ref": "#/$defs/OverCapPenalty" - }, - "type": "array" - }, - "over_cap_remedy": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "over_cap_remedy_conditional": { - "default": false, - "type": "boolean" - }, - "over_cap_remedy_damages": { - "default": false, - "type": "boolean" - }, - "over_cap_remedy_fees": { - "default": false, - "type": "boolean" - }, - "over_cap_remedy_if": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "over_cap_remedy_months": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "over_cap_remedy_section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "over_cap_section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "over_cap_void": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "over_usd": { - "anyOf": [ - { - "minimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "per": { - "default": "late_payment", - "enum": [ - "late_payment", - "month" - ], - "type": "string" - }, - "percent": { - "anyOf": [ - { - "minimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "percent_of": { - "default": "rent", - "enum": [ - "rent", - "past_due_payment" - ], - "type": "string" - }, - "preconditions": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "preconditions_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "preconditions_section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "presumption": { - "default": false, - "type": "boolean" - }, - "quote": { - "maxLength": 600, - "type": "string" - }, - "renewal_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "rent_tiers": { - "default": [], - "items": { - "$ref": "#/$defs/RentTier" - }, - "type": "array" - }, - "section": { - "type": "string" - }, - "source": { - "type": "string" - }, - "unit_tiers": { - "default": [], - "items": { - "$ref": "#/$defs/UnitTier" - }, - "type": "array" - }, - "verbatim": { - "default": true, - "type": "boolean" - } - }, - "required": [ - "section", - "quote", - "source" - ], - "type": "object" - }, - "LeaseAuthorized": { - "additionalProperties": false, - "properties": { - "categories": { - "default": [], - "items": { - "enum": [ - "unpaid_rent", - "unpaid_utilities", - "cleaning", - "carpet", - "flooring", - "paint", - "blinds_window_coverings", - "appliance", - "fixture_or_hardware", - "wall_or_door_repair", - "key_or_lock", - "late_fees", - "lease_break_fee", - "moving_and_storage", - "reletting_costs", - "trash_and_abandoned_items", - "other_damage", - "other" - ], - "type": "string" - }, - "type": "array" - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "quote": { - "maxLength": 600, - "type": "string" - }, - "replace": { - "default": false, - "type": "boolean" - }, - "section": { - "type": "string" - }, - "source": { - "type": "string" - }, - "verbatim": { - "default": true, - "type": "boolean" - } - }, - "required": [ - "section", - "quote", - "source" - ], - "type": "object" - }, - "LeaseBreakRule": { - "additionalProperties": false, - "properties": { - "excludes_later_rent": { - "default": false, - "type": "boolean" - }, - "exclusion_quote": { - "anyOf": [ - { - "maxLength": 400, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "exclusion_section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "keeps_retake_month_rent": { - "default": false, - "type": "boolean" - }, - "months_rent": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "quote": { - "maxLength": 600, - "type": "string" - }, - "rule": { - "enum": [ - "actual_rent", - "cap_months_rent", - "nonstandard_provision" - ], - "type": "string" - }, - "section": { - "type": "string" - }, - "source": { - "type": "string" - }, - "verbatim": { - "default": true, - "type": "boolean" - } - }, - "required": [ - "rule", - "section", - "quote", - "source" - ], - "type": "object" - }, - "Links": { - "properties": { - "downloads": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "how_to_get_files": { - "type": "string" - }, - "web_tool": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "web_tool_prefilled": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "how_to_get_files" - ], - "type": "object" - }, - "MoveInPhotos": { - "additionalProperties": false, - "properties": { - "missing": { - "default": "depends", - "enum": [ - "warn", - "depends", - "bars" - ], - "type": "string" - }, - "quote": { - "maxLength": 600, - "type": "string" - }, - "section": { - "type": "string" - }, - "source": { - "type": "string" - }, - "tenancy_from": { - "format": "date", - "type": "string" - } - }, - "required": [ - "tenancy_from", - "section", - "quote", - "source" - ], - "type": "object" - }, - "MoveInStatement": { - "additionalProperties": false, - "properties": { - "missing": { - "default": "depends", - "enum": [ - "depends", - "bars", - "warn" - ], - "type": "string" - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "quote": { - "maxLength": 400, - "type": "string" - }, - "rent_exempt": { - "default": false, - "type": "boolean" - }, - "scope": { - "default": "lines", - "enum": [ - "lines", - "all" - ], - "type": "string" - }, - "section": { - "type": "string" - }, - "source": { - "type": "string" - } - }, - "required": [ - "section", - "quote", - "source" - ], - "type": "object" - }, - "MoveOutList": { - "additionalProperties": false, - "properties": { - "business_days": { - "exclusiveMinimum": 0, - "type": "integer" - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "quote": { - "maxLength": 400, - "type": "string" - }, - "section": { - "type": "string" - }, - "source": { - "type": "string" - }, - "unnotified_section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "business_days", - "section", - "quote", - "source" - ], - "type": "object" - }, - "NotIfAbandoned": { - "additionalProperties": false, - "properties": { - "quote": { - "maxLength": 400, - "type": "string" - }, - "section": { - "type": "string" - }, - "source": { - "type": "string" - } - }, - "required": [ - "section", - "quote", - "source" - ], - "type": "object" - }, - "Note": { - "properties": { - "code": { - "type": "string" - }, - "text": { - "type": "string" - } - }, - "required": [ - "code", - "text" - ], - "type": "object" - }, - "NoticeRelief": { - "additionalProperties": false, - "properties": { - "agreement": { - "type": "string" - }, - "lease": { - "type": "string" - }, - "reach": { - "type": "string" - }, - "relief": { - "type": "string" - }, - "section": { - "type": "string" - }, - "source": { - "type": "string" - } - }, - "required": [ - "section", - "source", - "agreement", - "lease", - "reach", - "relief" - ], - "type": "object" - }, - "OverCapPenalty": { - "additionalProperties": false, - "properties": { - "applies_if": { - "type": "string" - }, - "conditional": { - "default": false, - "type": "boolean" - }, - "damages": { - "default": false, - "type": "boolean" - }, - "fees": { - "default": false, - "type": "boolean" - }, - "fixed_usd": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - }, - "minimum_usd": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "quote": { - "maxLength": 600, - "type": "string" - }, - "section": { - "type": "string" - } - }, - "required": [ - "section", - "quote", - "fixed_usd", - "applies_if" - ], - "type": "object" - }, - "PaymentMethod": { - "additionalProperties": false, - "properties": { - "days": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "effective_on": { - "format": "date", - "type": "string" - }, - "kind": { - "enum": [ - "electronic_after_notice", - "electronic_if_paid_electronically" - ], - "type": "string" - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "section": { - "type": "string" - } - }, - "required": [ - "kind", - "effective_on", - "section" - ], - "type": "object" - }, - "PenaltyRule": { - "additionalProperties": false, - "properties": { - "base": { - "default": "withheld", - "enum": [ - "withheld", - "wrongfully_withheld", - "entitled_balance", - "exceeds_damages" - ], - "type": "string" - }, - "base_high": { - "anyOf": [ - { - "enum": [ - "deposit", - "withheld" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "base_if_no_statement": { - "anyOf": [ - { - "const": "deposit_less_claims", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "basis": { - "anyOf": [ - { - "enum": [ - "deposit", - "amount_withheld", - "monthly_rent" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "condition": { - "enum": [ - "bad_faith", - "willful", - "any_late", - "late", - "any_violation", - "without_reasonable_basis", - "court_discretion", - "unpaid_annual_interest", - "after_tenant_notice", - "absence_of_good_faith", - "no_account_and_no_listing", - "late_claim_notice", - "late_action_or_return" - ], - "type": "string" - }, - "credited_against_rent": { - "anyOf": [ - { - "enum": [ - "rent_due", - "rent_beyond_deposit" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "discretionary": { - "default": false, - "type": "boolean" - }, - "earlier_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "earlier_section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "fees_only_without_multiple": { - "default": false, - "type": "boolean" - }, - "fixed_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "forfeits_right_to_withhold_if_late": { - "default": false, - "type": "boolean" - }, - "interest_in_base": { - "default": false, - "type": "boolean" - }, - "interest_only_fixed_usd": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "interest_only_multiple": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "enum": [ - "multiple", - "fixed", - "actual_only", - "forfeiture_only" - ], - "type": "string" - }, - "late_refund_in_base": { - "default": true, - "type": "boolean" - }, - "low_on_merits": { - "default": false, - "type": "boolean" - }, - "max_months_rent": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "minimum_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "multiple": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "multiple_if_statement_late": { - "default": false, - "type": "boolean" - }, - "multiple_is_additional": { - "default": false, - "type": "boolean" - }, - "no_statement_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "not_if_abandoned": { - "default": false, - "type": "boolean" - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "note_from": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "per_violation": { - "default": false, - "type": "boolean" - }, - "plus_attorney_fees": { - "default": false, - "type": "boolean" - }, - "safe_harbor": { - "anyOf": [ - { - "$ref": "#/$defs/SafeHarbor" - }, - { - "type": "null" - } - ], - "default": null - }, - "section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "source": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "kind", - "condition" - ], - "type": "object" - }, - "Photos": { - "additionalProperties": false, - "properties": { - "effective_by": { - "default": "move_out", - "enum": [ - "move_out", - "notice" - ], - "type": "string" - }, - "effective_on": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "gate_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "kinds": { - "default": [ - "move_out", - "after_repair" - ], - "items": { - "enum": [ - "move_in", - "move_out", - "after_repair" - ], - "type": "string" - }, - "type": "array" - }, - "missing": { - "default": "warn", - "enum": [ - "warn", - "depends", - "bars" - ], - "type": "string" - }, - "missing_from": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "required": { - "type": "boolean" - }, - "scope": { - "default": "lines", - "enum": [ - "lines", - "all" - ], - "type": "string" - }, - "section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "threshold_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "required" - ], - "type": "object" - }, - "Provenance": { - "properties": { - "rule_ids": { - "items": { - "type": "string" - }, - "type": "array" - }, - "rules_as_of": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "ruleset_hash": { - "type": "string" - }, - "ruleset_id": { - "type": "string" - }, - "ruleset_version": { - "type": "string" - }, - "sources": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "ruleset_id", - "ruleset_version", - "ruleset_hash" - ], - "type": "object" - }, - "Reading": { - "properties": { - "counts": { - "$ref": "#/$defs/ReadingCounts" - }, - "findings": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array" - }, - "id": { - "type": "string" - }, - "kind": { - "enum": [ - "notes", - "document" - ], - "type": "string" - }, - "model": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "notes": { - "items": { - "$ref": "#/$defs/ReadingNote" - }, - "type": "array" - }, - "prompt_version": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "id", - "kind", - "counts", - "findings" - ], - "type": "object" - }, - "ReadingCounts": { - "properties": { - "ai": { - "type": "integer" - }, - "parser": { - "type": "integer" - }, - "total": { - "type": "integer" - }, - "unmatched": { - "type": "integer" - } - }, - "required": [ - "total", - "ai", - "parser", - "unmatched" - ], - "type": "object" - }, - "ReadingNote": { - "properties": { - "code": { - "type": "string" - }, - "finding_ids": { - "default": [], - "items": { - "type": "string" - }, - "type": "array" - }, - "kind": { - "enum": [ - "warning", - "assumption" - ], - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "kind", - "code", - "message" - ], - "type": "object" - }, - "Receipts": { - "additionalProperties": false, - "properties": { - "enclosed_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "estimate_days": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "estimate_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "estimate_section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "gate_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "missing": { - "default": "warn", - "enum": [ - "warn", - "depends", - "bars" - ], - "type": "string" - }, - "missing_from": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "own_work_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "required": { - "type": "boolean" - }, - "scope": { - "default": "lines", - "enum": [ - "lines", - "all" - ], - "type": "string" - }, - "section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "threshold_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "required" - ], - "type": "object" - }, - "RentTier": { - "additionalProperties": false, - "properties": { - "flat_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - }, - "max_rent_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "flat_usd" - ], - "type": "object" - }, - "ResultSignature": { - "properties": { - "jws": { - "type": "string" - }, - "payload": { - "$ref": "#/$defs/ResultSignaturePayload" - }, - "verify_code": { - "type": "string" - }, - "verify_url": { - "type": "string" - } - }, - "required": [ - "jws", - "payload", - "verify_code", - "verify_url" - ], - "type": "object" - }, - "ResultSignaturePayload": { - "properties": { - "capability": { - "type": "string" - }, - "engine_version": { - "type": "string" - }, - "issued_at": { - "type": "string" - }, - "kid": { - "type": "string" - }, - "operation": { - "type": "string" - }, - "result_hash": { - "type": "string" - }, - "ruleset_hash": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "ruleset_version": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "v": { - "type": "integer" - } - }, - "required": [ - "v", - "kid", - "capability", - "operation", - "ruleset_version", - "ruleset_hash", - "engine_version", - "result_hash", - "issued_at" - ], - "type": "object" - }, - "ReturnRule": { - "additionalProperties": false, - "properties": { - "alternatives": { - "default": [], - "items": { - "$ref": "#/$defs/Alternative" - }, - "type": "array" - }, - "broken_lease": { - "anyOf": [ - { - "$ref": "#/$defs/BrokenLease" - }, - { - "type": "null" - } - ], - "default": null - }, - "counting": { - "default": "calendar", - "enum": [ - "calendar", - "business" - ], - "type": "string" - }, - "days": { - "anyOf": [ - { - "minimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "demand_in_writing": { - "default": false, - "type": "boolean" - }, - "determination_days": { - "anyOf": [ - { - "exclusiveMinimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "determination_section": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "fallback": { - "anyOf": [ - { - "$ref": "#/$defs/Fallback" - }, - { - "type": "null" - } - ], - "default": null - }, - "gate": { - "anyOf": [ - { - "const": "forwarding_address", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "gate_restarts": { - "default": true, - "type": "boolean" - }, - "holidays": { - "default": "federal", - "enum": [ - "federal", - "AZ", - "CA", - "NY", - "TX" - ], - "type": "string" - }, - "months": { - "anyOf": [ - { - "minimum": 0, - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "not_if_abandoned": { - "anyOf": [ - { - "$ref": "#/$defs/NotIfAbandoned" - }, - { - "type": "null" - } - ], - "default": null - }, - "payment_method": { - "anyOf": [ - { - "$ref": "#/$defs/PaymentMethod" - }, - { - "type": "null" - } - ], - "default": null - }, - "prepaid_rent_returned": { - "default": false, - "type": "boolean" - }, - "rollover": { - "default": false, - "type": "boolean" - }, - "rollover_days": { - "default": [ - "saturday", - "sunday", - "holiday" - ], - "items": { - "enum": [ - "saturday", - "sunday", - "holiday" - ], - "type": "string" - }, - "type": "array" - }, - "rollover_source": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "rollover_unsettled": { - "default": false, - "type": "boolean" - }, - "start": { - "default": "vacate", - "enum": [ - "vacate", - "termination", - "later_of_vacate_and_termination", - "forwarding_address", - "demand", - "later_of_termination_and_address", - "latest_of_termination_possession_and_address", - "earlier_of_termination_and_surrender", - "surrender_or_termination_first", - "new_tenant_occupancy", - "termination_possession_and_demand", - "claim_notice" - ], - "type": "string" - }, - "start_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "unsettled_rollover": { - "anyOf": [ - { - "$ref": "#/$defs/UnsettledRollover" - }, - { - "type": "null" - } - ], - "default": null - }, - "unsettled_start": { - "anyOf": [ - { - "$ref": "#/$defs/UnsettledStart" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "type": "object" - }, - "Review": { - "properties": { - "ai_read": { - "default": 0, - "type": "integer" - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "reading_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "status": { - "default": "verified", - "enum": [ - "draft", - "verified" - ], - "type": "string" - } - }, - "type": "object" - }, - "RulesResult": { - "properties": { - "citations": { - "items": { - "$ref": "#/$defs/Citation" - }, - "type": "array" - }, - "city_overlay": { - "anyOf": [ - { - "$ref": "#/$defs/CityRules" - }, - { - "type": "null" - } - ], - "default": null - }, - "covered_cities": { - "items": { - "type": "string" - }, - "type": "array" - }, - "covered_states": { - "items": { - "type": "string" - }, - "type": "array" - }, - "disclaimer": { - "type": "string" - }, - "guides": { - "items": { - "$ref": "#/$defs/Guide" - }, - "type": "array" - }, - "jurisdiction": { - "$ref": "#/$defs/JurisdictionRef" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "research_notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "rules": { - "anyOf": [ - { - "$ref": "#/$defs/StateRules" - }, - { - "type": "null" - } - ], - "default": null - }, - "small_claims": { - "anyOf": [ - { - "$ref": "#/$defs/Guide" - }, - { - "type": "null" - } - ], - "default": null - }, - "summary": { - "type": "string" - }, - "warnings": { - "items": { - "$ref": "#/$defs/Note" - }, - "type": "array" - } - }, - "required": [ - "summary", - "disclaimer", - "jurisdiction", - "provenance" - ], - "type": "object" - }, - "RunInfo": { - "properties": { - "capability": { - "type": "string" - }, - "contract_version": { - "type": "string" - }, - "duration_ms": { - "type": "integer" - }, - "engine_version": { - "type": "string" - }, - "id": { - "type": "string" - }, - "operation": { - "type": "string" - }, - "received_at": { - "format": "date-time", - "type": "string" - }, - "ruleset_hash": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "ruleset_version": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "capability", - "operation", - "contract_version", - "engine_version", - "ruleset_version", - "ruleset_hash", - "received_at", - "duration_ms" - ], - "type": "object" - }, - "SafeHarbor": { - "additionalProperties": false, - "properties": { - "address_due": { - "anyOf": [ - { - "enum": [ - "by_termination", - "upon_termination" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "address_due_quote": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "conditions": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "late_address": { - "anyOf": [ - { - "const": "unsettled", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "lease_notice_address_counts": { - "default": false, - "type": "boolean" - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "quote": { - "maxLength": 600, - "type": "string" - }, - "requires_mailing": { - "default": false, - "type": "boolean" - }, - "section": { - "type": "string" - }, - "source": { - "type": "string" - }, - "when": { - "const": "no_forwarding_address", - "default": "no_forwarding_address", - "type": "string" - } - }, - "required": [ - "section", - "quote", - "source" - ], - "type": "object" - }, - "StateRules": { - "properties": { - "applicability": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "deductions": { - "$ref": "#/$defs/DeductionRules" - }, - "deposit_cap": { - "anyOf": [ - { - "$ref": "#/$defs/DepositCap" - }, - { - "type": "null" - } - ], - "default": null - }, - "deposit_cap_months_rent": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "forfeiture": { - "items": { - "$ref": "#/$defs/Forfeiture" - }, - "type": "array" - }, - "interest": { - "$ref": "#/$defs/InterestRule" - }, - "itemization": { - "$ref": "#/$defs/Itemization" - }, - "notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "penalty": { - "$ref": "#/$defs/PenaltyRule" - }, - "recent_changes": { - "items": { - "$ref": "#/$defs/Change" - }, - "type": "array" - }, - "return_rule": { - "$ref": "#/$defs/ReturnRule" - }, - "statute": { - "type": "string" - } - }, - "required": [ - "statute", - "return_rule", - "itemization", - "deductions", - "interest", - "penalty" - ], - "type": "object" - }, - "UnitTier": { - "additionalProperties": false, - "properties": { - "max_units": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "percent": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - } - }, - "required": [ - "percent" - ], - "type": "object" - }, - "UnsettledRollover": { - "additionalProperties": false, - "properties": { - "holidays": { - "default": [], - "items": { - "type": "string" - }, - "type": "array" - }, - "quote": { - "maxLength": 1200, - "type": "string" - }, - "section": { - "type": "string" - }, - "source": { - "type": "string" - }, - "start_rolls": { - "default": false, - "type": "boolean" - } - }, - "required": [ - "section", - "quote", - "source" - ], - "type": "object" - }, - "UnsettledStart": { - "additionalProperties": false, - "properties": { - "event": { - "enum": [ - "vacate", - "termination", - "later_of_vacate_and_termination", - "forwarding_address", - "demand", - "later_of_termination_and_address", - "latest_of_termination_possession_and_address", - "earlier_of_termination_and_surrender", - "surrender_or_termination_first", - "new_tenant_occupancy", - "termination_possession_and_demand", - "claim_notice" - ], - "type": "string" - }, - "later_text_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "later_text_on": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "quote": { - "maxLength": 600, - "type": "string" - }, - "section": { - "type": "string" - }, - "source": { - "type": "string" - } - }, - "required": [ - "event", - "section", - "quote", - "source" - ], - "type": "object" - }, - "UtilityLimit": { - "additionalProperties": false, - "properties": { - "kinds": { - "items": { - "type": "string" - }, - "type": "array" - }, - "quote": { - "maxLength": 600, - "type": "string" - }, - "section": { - "type": "string" - }, - "source": { - "type": "string" - } - }, - "required": [ - "kinds", - "section", - "quote", - "source" - ], - "type": "object" - } -} - removed
Output schema / properties / client_refs / anyOfRemoved value: -[ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } -] - removed
Output schema / properties / client_refs / defaultRemoved value: -null - added
Output schema / properties / client_refs / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / deprecation / anyOfRemoved value: -[ - { - "items": { - "$ref": "#/$defs/Deprecation" - }, - "type": "array" - }, - { - "type": "null" - } -] - removed
Output schema / properties / deprecation / defaultRemoved value: -null - added
Output schema / properties / deprecation / typeAdded value: +[ + "array", + "null" +] - removed
Output schema / properties / input_hash / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Output schema / properties / input_hash / defaultRemoved value: -null - added
Output schema / properties / input_hash / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / links / anyOfRemoved value: -[ - { - "$ref": "#/$defs/Links" - }, - { - "type": "null" - } -] - removed
Output schema / properties / links / defaultRemoved value: -null - added
Output schema / properties / links / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / reading / anyOfRemoved value: -[ - { - "$ref": "#/$defs/Reading" - }, - { - "type": "null" - } -] - removed
Output schema / properties / reading / defaultRemoved value: -null - added
Output schema / properties / reading / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / request_hash / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Output schema / properties / request_hash / defaultRemoved value: -null - added
Output schema / properties / request_hash / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / result / $refRemoved value: -"#/$defs/RulesResult" - added
Output schema / properties / result / propertiesAdded value: +{ + "citations": { + "type": "array" + }, + "city_overlay": { + "type": [ + "object", + "null" + ] + }, + "covered_cities": { + "type": "array" + }, + "covered_states": { + "type": "array" + }, + "disclaimer": { + "type": "string" + }, + "guides": { + "type": "array" + }, + "jurisdiction": { + "type": "object" + }, + "provenance": { + "type": "object" + }, + "research_notes": { + "type": "array" + }, + "rules": { + "type": [ + "object", + "null" + ] + }, + "small_claims": { + "type": [ + "object", + "null" + ] + }, + "summary": { + "type": "string" + }, + "warnings": { + "type": "array" + } +} - added
Output schema / properties / result / requiredAdded value: +[ + "summary", + "disclaimer", + "jurisdiction", + "provenance" +] - added
Output schema / properties / result / typeAdded value: +"object" - removed
Output schema / properties / result_hash / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Output schema / properties / result_hash / defaultRemoved value: -null - added
Output schema / properties / result_hash / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / review / anyOfRemoved value: -[ - { - "$ref": "#/$defs/Review" - }, - { - "type": "null" - } -] - removed
Output schema / properties / review / defaultRemoved value: -null - added
Output schema / properties / review / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / run / anyOfRemoved value: -[ - { - "$ref": "#/$defs/RunInfo" - }, - { - "type": "null" - } -] - removed
Output schema / properties / run / defaultRemoved value: -null - added
Output schema / properties / run / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / signature / anyOfRemoved value: -[ - { - "$ref": "#/$defs/ResultSignature" - }, - { - "type": "null" - } -] - removed
Output schema / properties / signature / defaultRemoved value: -null - added
Output schema / properties / signature / typeAdded value: +[ + "object", + "null" +]
- Changed
deposit_settlement_settle35 fields changed- removed
Output schema / $defsRemoved value: -{ - "Citation": { - "properties": { - "accessed": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "quote": { - "type": "string" - }, - "rule": { - "type": "string" - }, - "section": { - "type": "string" - }, - "source_title": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "verbatim": { - "default": true, - "type": "boolean" - } - }, - "required": [ - "rule", - "section", - "quote" - ], - "type": "object" - }, - "Deadline": { - "properties": { - "alternatives": { - "items": { - "$ref": "#/$defs/DeadlineAlternative" - }, - "type": "array" - }, - "counting": { - "enum": [ - "calendar", - "business" - ], - "type": "string" - }, - "days": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "days_remaining": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "extended_to": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "interest_due_by": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "itemization_by": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "months": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "return_by": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "reverted_after": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "start_date": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "start_event": { - "type": "string" - }, - "status": { - "enum": [ - "upcoming", - "due_today", - "overdue", - "not_started", - "none_in_statute", - "reverted", - "no_deposit", - "met", - "late" - ], - "type": "string" - } - }, - "required": [ - "start_event", - "counting", - "status" - ], - "type": "object" - }, - "DeadlineAlternative": { - "properties": { - "applies_if": { - "type": "string" - }, - "on": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "send": { - "type": "string" - } - }, - "required": [ - "applies_if", - "send" - ], - "type": "object" - }, - "DeductionResult": { - "properties": { - "allowed": { - "enum": [ - "yes", - "no", - "depends" - ], - "type": "string" - }, - "amount_allowed_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - }, - "amount_claimed_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - }, - "basis": { - "enum": [ - "allowed_category", - "normal_wear", - "not_allowed", - "unclassified", - "forfeited", - "statutory_bar", - "mitigation", - "excluded_by_fee", - "documentation_missing" - ], - "type": "string" - }, - "category": { - "enum": [ - "unpaid_rent", - "unpaid_utilities", - "cleaning", - "carpet", - "flooring", - "paint", - "blinds_window_coverings", - "appliance", - "fixture_or_hardware", - "wall_or_door_repair", - "key_or_lock", - "late_fees", - "lease_break_fee", - "moving_and_storage", - "reletting_costs", - "trash_and_abandoned_items", - "other_damage", - "other" - ], - "type": "string" - }, - "depreciation": { - "anyOf": [ - { - "$ref": "#/$defs/Depreciation" - }, - { - "type": "null" - } - ], - "default": null - }, - "documentation_needed": { - "items": { - "type": "string" - }, - "type": "array" - }, - "exclusive_option": { - "anyOf": [ - { - "enum": [ - "fee", - "actual" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "notes": { - "items": { - "type": "string" - }, - "type": "array" - }, - "range_high_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "range_low_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "category", - "amount_claimed_usd", - "allowed", - "basis", - "amount_allowed_usd" - ], - "type": "object" - }, - "DepositCapCheck": { - "properties": { - "alternative_cap_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "cap_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "citation": { - "type": "string" - }, - "counted_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "exceeded": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null - }, - "months_rent": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "status": { - "default": "unknown", - "enum": [ - "within", - "exceeded", - "depends", - "unknown", - "no_cap", - "not_applicable" - ], - "type": "string" - }, - "variants": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "citation" - ], - "type": "object" - }, - "Deprecation": { - "properties": { - "field": { - "type": "string" - }, - "until": { - "format": "date", - "type": "string" - }, - "use": { - "type": "string" - } - }, - "required": [ - "field", - "until", - "use" - ], - "type": "object" - }, - "Depreciation": { - "properties": { - "age_years": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "applied": { - "type": "boolean" - }, - "method": { - "anyOf": [ - { - "enum": [ - "straight_line", - "step_table" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "range_high_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "range_low_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "remaining_fraction": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "schedule_source": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "source": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "useful_life_years": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "applied" - ], - "type": "object" - }, - "DocumentationDuty": { - "properties": { - "citation": { - "type": "string" - }, - "due_by": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "duty": { - "enum": [ - "itemized_statement", - "receipts", - "photos", - "photos_move_in", - "move_in_statement", - "move_out_list" - ], - "type": "string" - }, - "met": { - "enum": [ - "yes", - "no", - "unknown", - "not_yet_due" - ], - "type": "string" - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "required": { - "type": "boolean" - }, - "threshold": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "duty", - "required", - "met", - "citation" - ], - "type": "object" - }, - "ForfeitureCheck": { - "properties": { - "amount_released_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ], - "default": "0.00" - }, - "citation": { - "type": "string" - }, - "court_rule_due_by": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "due_by": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "gate": { - "type": "string" - }, - "keeps_claim": { - "type": "boolean" - }, - "lines": { - "items": { - "type": "integer" - }, - "type": "array" - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "scope": { - "enum": [ - "all", - "damage" - ], - "type": "string" - }, - "status": { - "enum": [ - "met", - "not_yet", - "complied", - "not_started", - "relieved", - "unknown" - ], - "type": "string" - }, - "trigger": { - "type": "string" - } - }, - "required": [ - "trigger", - "status", - "scope", - "gate", - "keeps_claim", - "citation" - ], - "type": "object" - }, - "Guide": { - "properties": { - "accessed": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "publisher": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "title": { - "type": "string" - }, - "url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "title" - ], - "type": "object" - }, - "Interest": { - "properties": { - "amount_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "base_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "basis": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "citation": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "condition": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "formula": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "if_required_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "method": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "parts": { - "items": { - "$ref": "#/$defs/InterestPart" - }, - "type": "array" - }, - "period_days": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "rate_percent": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "required": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "required" - ], - "type": "object" - }, - "InterestPart": { - "properties": { - "amount_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - }, - "period_from": { - "format": "date", - "type": "string" - }, - "period_to": { - "format": "date", - "type": "string" - }, - "rate_percent": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - } - }, - "required": [ - "period_from", - "period_to", - "rate_percent", - "amount_usd" - ], - "type": "object" - }, - "JurisdictionRef": { - "properties": { - "city": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "city_overlay": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "city_rules_checked": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ], - "default": null - }, - "covered": { - "type": "boolean" - }, - "state": { - "type": "string" - }, - "state_name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "verified": { - "type": "boolean" - } - }, - "required": [ - "state", - "covered", - "verified" - ], - "type": "object" - }, - "Links": { - "properties": { - "downloads": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "how_to_get_files": { - "type": "string" - }, - "web_tool": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "web_tool_prefilled": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "how_to_get_files" - ], - "type": "object" - }, - "Note": { - "properties": { - "code": { - "type": "string" - }, - "text": { - "type": "string" - } - }, - "required": [ - "code", - "text" - ], - "type": "object" - }, - "NoteFormat": { - "properties": { - "bold": { - "default": false, - "type": "boolean" - }, - "larger_than_body_pt": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "min_pt": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "type": "object" - }, - "Outcome": { - "properties": { - "interest_unknown": { - "default": false, - "type": "boolean" - }, - "interest_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "next_due": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "obligation_mode": { - "default": "all", - "enum": [ - "all", - "alternative" - ], - "type": "string" - }, - "owed_now_min_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "owed_now_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "refund_due_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - }, - "refund_min_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - }, - "returned_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "stages": { - "items": { - "$ref": "#/$defs/Stage" - }, - "type": "array" - }, - "status": { - "enum": [ - "upcoming", - "due_today", - "overdue", - "not_started", - "none_in_statute", - "reverted", - "no_deposit", - "met", - "late" - ], - "type": "string" - }, - "tenant_owes_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - }, - "uncertain": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "status", - "refund_due_usd", - "refund_min_usd", - "tenant_owes_usd" - ], - "type": "object" - }, - "PenaltyExposure": { - "properties": { - "additional": { - "items": { - "$ref": "#/$defs/PenaltyExposure" - }, - "type": "array" - }, - "applies_if": { - "type": "string" - }, - "base": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "basis": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "citation": { - "type": "string" - }, - "discretionary": { - "type": "boolean" - }, - "estimated_max_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "estimated_min_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "fees_only_without_multiple": { - "default": false, - "type": "boolean" - }, - "fixed_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "forfeits_right_to_withhold": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "in_addition_to_refund": { - "default": false, - "type": "boolean" - }, - "kind": { - "type": "string" - }, - "minimum_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "multiple": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "not_applicable_reason": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "per_violation": { - "default": false, - "type": "boolean" - }, - "plus_attorney_fees": { - "type": "boolean" - } - }, - "required": [ - "applies_if", - "kind", - "discretionary", - "plus_attorney_fees", - "forfeits_right_to_withhold", - "citation" - ], - "type": "object" - }, - "Provenance": { - "properties": { - "rule_ids": { - "items": { - "type": "string" - }, - "type": "array" - }, - "rules_as_of": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "ruleset_hash": { - "type": "string" - }, - "ruleset_id": { - "type": "string" - }, - "ruleset_version": { - "type": "string" - }, - "sources": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "ruleset_id", - "ruleset_version", - "ruleset_hash" - ], - "type": "object" - }, - "Reading": { - "properties": { - "counts": { - "$ref": "#/$defs/ReadingCounts" - }, - "findings": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array" - }, - "id": { - "type": "string" - }, - "kind": { - "enum": [ - "notes", - "document" - ], - "type": "string" - }, - "model": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "notes": { - "items": { - "$ref": "#/$defs/ReadingNote" - }, - "type": "array" - }, - "prompt_version": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "id", - "kind", - "counts", - "findings" - ], - "type": "object" - }, - "ReadingCounts": { - "properties": { - "ai": { - "type": "integer" - }, - "parser": { - "type": "integer" - }, - "total": { - "type": "integer" - }, - "unmatched": { - "type": "integer" - } - }, - "required": [ - "total", - "ai", - "parser", - "unmatched" - ], - "type": "object" - }, - "ReadingNote": { - "properties": { - "code": { - "type": "string" - }, - "finding_ids": { - "default": [], - "items": { - "type": "string" - }, - "type": "array" - }, - "kind": { - "enum": [ - "warning", - "assumption" - ], - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "kind", - "code", - "message" - ], - "type": "object" - }, - "ResultSignature": { - "properties": { - "jws": { - "type": "string" - }, - "payload": { - "$ref": "#/$defs/ResultSignaturePayload" - }, - "verify_code": { - "type": "string" - }, - "verify_url": { - "type": "string" - } - }, - "required": [ - "jws", - "payload", - "verify_code", - "verify_url" - ], - "type": "object" - }, - "ResultSignaturePayload": { - "properties": { - "capability": { - "type": "string" - }, - "engine_version": { - "type": "string" - }, - "issued_at": { - "type": "string" - }, - "kid": { - "type": "string" - }, - "operation": { - "type": "string" - }, - "result_hash": { - "type": "string" - }, - "ruleset_hash": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "ruleset_version": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "v": { - "type": "integer" - } - }, - "required": [ - "v", - "kid", - "capability", - "operation", - "ruleset_version", - "ruleset_hash", - "engine_version", - "result_hash", - "issued_at" - ], - "type": "object" - }, - "Review": { - "properties": { - "ai_read": { - "default": 0, - "type": "integer" - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "reading_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "status": { - "default": "verified", - "enum": [ - "draft", - "verified" - ], - "type": "string" - } - }, - "type": "object" - }, - "RunInfo": { - "properties": { - "capability": { - "type": "string" - }, - "contract_version": { - "type": "string" - }, - "duration_ms": { - "type": "integer" - }, - "engine_version": { - "type": "string" - }, - "id": { - "type": "string" - }, - "operation": { - "type": "string" - }, - "received_at": { - "format": "date-time", - "type": "string" - }, - "ruleset_hash": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "ruleset_version": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "capability", - "operation", - "contract_version", - "engine_version", - "ruleset_version", - "ruleset_hash", - "received_at", - "duration_ms" - ], - "type": "object" - }, - "SettleResult": { - "properties": { - "as_of": { - "format": "date", - "type": "string" - }, - "assumptions": { - "items": { - "$ref": "#/$defs/Note" - }, - "type": "array" - }, - "citations": { - "items": { - "$ref": "#/$defs/Citation" - }, - "type": "array" - }, - "deadline": { - "anyOf": [ - { - "$ref": "#/$defs/Deadline" - }, - { - "type": "null" - } - ], - "default": null - }, - "deductions": { - "items": { - "$ref": "#/$defs/DeductionResult" - }, - "type": "array" - }, - "deposit_cap": { - "anyOf": [ - { - "$ref": "#/$defs/DepositCapCheck" - }, - { - "type": "null" - } - ], - "default": null - }, - "disclaimer": { - "type": "string" - }, - "documentation": { - "items": { - "$ref": "#/$defs/DocumentationDuty" - }, - "type": "array" - }, - "forfeiture": { - "items": { - "$ref": "#/$defs/ForfeitureCheck" - }, - "type": "array" - }, - "guides": { - "items": { - "$ref": "#/$defs/Guide" - }, - "type": "array" - }, - "interest": { - "$ref": "#/$defs/Interest" - }, - "jurisdiction": { - "$ref": "#/$defs/JurisdictionRef" - }, - "outcome": { - "anyOf": [ - { - "$ref": "#/$defs/Outcome" - }, - { - "type": "null" - } - ], - "default": null - }, - "penalty_exposure": { - "anyOf": [ - { - "$ref": "#/$defs/PenaltyExposure" - }, - { - "type": "null" - } - ], - "default": null - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "small_claims": { - "anyOf": [ - { - "$ref": "#/$defs/Guide" - }, - { - "type": "null" - } - ], - "default": null - }, - "statement": { - "anyOf": [ - { - "$ref": "#/$defs/Statement" - }, - { - "type": "null" - } - ], - "default": null - }, - "summary": { - "type": "string" - }, - "timeliness": { - "anyOf": [ - { - "$ref": "#/$defs/Timeliness" - }, - { - "type": "null" - } - ], - "default": null - }, - "totals": { - "$ref": "#/$defs/Totals" - }, - "unknowns": { - "items": { - "$ref": "#/$defs/Note" - }, - "type": "array" - }, - "warnings": { - "items": { - "$ref": "#/$defs/Note" - }, - "type": "array" - } - }, - "required": [ - "summary", - "disclaimer", - "jurisdiction", - "as_of", - "totals", - "interest", - "provenance" - ], - "type": "object" - }, - "Stage": { - "properties": { - "days": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "done_on": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "due_by": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "duty": { - "enum": [ - "itemized_statement", - "refund", - "interest" - ], - "type": "string" - }, - "label": { - "type": "string" - }, - "status": { - "enum": [ - "met", - "late", - "short", - "overdue", - "due_today", - "upcoming", - "not_started", - "none_in_statute" - ], - "type": "string" - } - }, - "required": [ - "duty", - "label", - "status" - ], - "type": "object" - }, - "Statement": { - "properties": { - "due_by": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "lines": { - "items": { - "$ref": "#/$defs/StatementLine" - }, - "type": "array" - }, - "notes": { - "items": { - "$ref": "#/$defs/StatementNote" - }, - "type": "array" - }, - "refund_due_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - }, - "text": { - "type": "string" - } - }, - "required": [ - "lines", - "refund_due_usd", - "text" - ], - "type": "object" - }, - "StatementLine": { - "properties": { - "amount_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "label": { - "type": "string" - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "label" - ], - "type": "object" - }, - "StatementNote": { - "properties": { - "audience": { - "enum": [ - "tenant", - "manager" - ], - "type": "string" - }, - "blanks": { - "items": { - "type": "string" - }, - "type": "array" - }, - "citation": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "format": { - "anyOf": [ - { - "$ref": "#/$defs/NoteFormat" - }, - { - "type": "null" - } - ], - "default": null - }, - "kind": { - "default": "note", - "enum": [ - "note", - "required_notice", - "attestation" - ], - "type": "string" - }, - "text": { - "type": "string" - } - }, - "required": [ - "text", - "audience" - ], - "type": "object" - }, - "Timeliness": { - "properties": { - "amount_kept_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "amount_returned_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "checks": { - "items": { - "$ref": "#/$defs/TimelyCheck" - }, - "type": "array" - }, - "days_late": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "difference_min_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "difference_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "late": { - "anyOf": [ - { - "type": "boolean" - }, - { - "type": "null" - } - ] - }, - "late_since": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "note": { - "default": "", - "type": "string" - }, - "on": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "what": { - "enum": [ - "nothing", - "full_refund", - "partial_refund", - "itemized_statement" - ], - "type": "string" - } - }, - "required": [ - "what", - "late" - ], - "type": "object" - }, - "TimelyCheck": { - "properties": { - "days_late": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "days_left": { - "anyOf": [ - { - "type": "integer" - }, - { - "type": "null" - } - ], - "default": null - }, - "done_on": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "due_by": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "duty": { - "enum": [ - "refund", - "itemized_statement", - "interest" - ], - "type": "string" - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "status": { - "enum": [ - "on_time", - "late", - "not_yet_due", - "overdue", - "not_started", - "none_in_statute", - "reverted" - ], - "type": "string" - } - }, - "required": [ - "duty", - "status" - ], - "type": "object" - }, - "Totals": { - "properties": { - "allowed_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - }, - "claimed_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - }, - "counted_floor_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ], - "default": "0.00" - }, - "depends_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ], - "default": "0.00" - }, - "deposit_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - }, - "interest_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "refund_due_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - }, - "refund_min_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ], - "default": "0.00" - }, - "tenant_owes_usd": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - } - }, - "required": [ - "deposit_usd", - "claimed_usd", - "allowed_usd", - "refund_due_usd", - "tenant_owes_usd" - ], - "type": "object" - } -} - removed
Output schema / properties / client_refs / anyOfRemoved value: -[ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } -] - removed
Output schema / properties / client_refs / defaultRemoved value: -null - added
Output schema / properties / client_refs / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / deprecation / anyOfRemoved value: -[ - { - "items": { - "$ref": "#/$defs/Deprecation" - }, - "type": "array" - }, - { - "type": "null" - } -] - removed
Output schema / properties / deprecation / defaultRemoved value: -null - added
Output schema / properties / deprecation / typeAdded value: +[ + "array", + "null" +] - removed
Output schema / properties / input_hash / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Output schema / properties / input_hash / defaultRemoved value: -null - added
Output schema / properties / input_hash / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / links / anyOfRemoved value: -[ - { - "$ref": "#/$defs/Links" - }, - { - "type": "null" - } -] - removed
Output schema / properties / links / defaultRemoved value: -null - added
Output schema / properties / links / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / reading / anyOfRemoved value: -[ - { - "$ref": "#/$defs/Reading" - }, - { - "type": "null" - } -] - removed
Output schema / properties / reading / defaultRemoved value: -null - added
Output schema / properties / reading / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / request_hash / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Output schema / properties / request_hash / defaultRemoved value: -null - added
Output schema / properties / request_hash / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / result / $refRemoved value: -"#/$defs/SettleResult" - added
Output schema / properties / result / propertiesAdded value: +{ + "as_of": { + "type": "string" + }, + "assumptions": { + "type": "array" + }, + "citations": { + "type": "array" + }, + "deadline": { + "type": [ + "object", + "null" + ] + }, + "deductions": { + "type": "array" + }, + "deposit_cap": { + "type": [ + "object", + "null" + ] + }, + "disclaimer": { + "type": "string" + }, + "documentation": { + "type": "array" + }, + "forfeiture": { + "type": "array" + }, + "guides": { + "type": "array" + }, + "interest": { + "type": "object" + }, + "jurisdiction": { + "type": "object" + }, + "outcome": { + "type": [ + "object", + "null" + ] + }, + "penalty_exposure": { + "type": [ + "object", + "null" + ] + }, + "provenance": { + "type": "object" + }, + "small_claims": { + "type": [ + "object", + "null" + ] + }, + "statement": { + "type": [ + "object", + "null" + ] + }, + "summary": { + "type": "string" + }, + "timeliness": { + "type": [ + "object", + "null" + ] + }, + "totals": { + "type": "object" + }, + "unknowns": { + "type": "array" + }, + "warnings": { + "type": "array" + } +} - added
Output schema / properties / result / requiredAdded value: +[ + "summary", + "disclaimer", + "jurisdiction", + "as_of", + "totals", + "interest", + "provenance" +] - added
Output schema / properties / result / typeAdded value: +"object" - removed
Output schema / properties / result_hash / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Output schema / properties / result_hash / defaultRemoved value: -null - added
Output schema / properties / result_hash / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / review / anyOfRemoved value: -[ - { - "$ref": "#/$defs/Review" - }, - { - "type": "null" - } -] - removed
Output schema / properties / review / defaultRemoved value: -null - added
Output schema / properties / review / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / run / anyOfRemoved value: -[ - { - "$ref": "#/$defs/RunInfo" - }, - { - "type": "null" - } -] - removed
Output schema / properties / run / defaultRemoved value: -null - added
Output schema / properties / run / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / signature / anyOfRemoved value: -[ - { - "$ref": "#/$defs/ResultSignature" - }, - { - "type": "null" - } -] - removed
Output schema / properties / signature / defaultRemoved value: -null - added
Output schema / properties / signature / typeAdded value: +[ + "object", + "null" +]
- Changed
property_turnover_issue_codes35 fields changed- removed
Output schema / $defsRemoved value: -{ - "Deprecation": { - "properties": { - "field": { - "type": "string" - }, - "until": { - "format": "date", - "type": "string" - }, - "use": { - "type": "string" - } - }, - "required": [ - "field", - "until", - "use" - ], - "type": "object" - }, - "IssueCode": { - "properties": { - "aliases": { - "items": { - "type": "string" - }, - "type": "array" - }, - "code": { - "type": "string" - }, - "default_extent": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "description": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "examples": { - "items": { - "type": "string" - }, - "type": "array" - }, - "group": { - "type": "string" - }, - "name": { - "type": "string" - }, - "not_when": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "refer_out": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "rooms": { - "items": { - "type": "string" - }, - "type": "array" - } - }, - "required": [ - "code", - "name", - "group" - ], - "type": "object" - }, - "IssueCodesResult": { - "properties": { - "areas": { - "items": { - "type": "string" - }, - "type": "array" - }, - "codes": { - "items": { - "$ref": "#/$defs/IssueCode" - }, - "type": "array" - }, - "groups": { - "items": { - "type": "string" - }, - "type": "array" - }, - "manual_quote_code": { - "default": "general.manual_quote", - "type": "string" - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "ruleset_version": { - "type": "string" - }, - "total_matches": { - "type": "integer" - } - }, - "required": [ - "ruleset_version", - "total_matches", - "codes" - ], - "type": "object" - }, - "Links": { - "properties": { - "downloads": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "how_to_get_files": { - "type": "string" - }, - "web_tool": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "web_tool_prefilled": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "how_to_get_files" - ], - "type": "object" - }, - "Reading": { - "properties": { - "counts": { - "$ref": "#/$defs/ReadingCounts" - }, - "findings": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array" - }, - "id": { - "type": "string" - }, - "kind": { - "enum": [ - "notes", - "document" - ], - "type": "string" - }, - "model": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "notes": { - "items": { - "$ref": "#/$defs/ReadingNote" - }, - "type": "array" - }, - "prompt_version": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "id", - "kind", - "counts", - "findings" - ], - "type": "object" - }, - "ReadingCounts": { - "properties": { - "ai": { - "type": "integer" - }, - "parser": { - "type": "integer" - }, - "total": { - "type": "integer" - }, - "unmatched": { - "type": "integer" - } - }, - "required": [ - "total", - "ai", - "parser", - "unmatched" - ], - "type": "object" - }, - "ReadingNote": { - "properties": { - "code": { - "type": "string" - }, - "finding_ids": { - "default": [], - "items": { - "type": "string" - }, - "type": "array" - }, - "kind": { - "enum": [ - "warning", - "assumption" - ], - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "kind", - "code", - "message" - ], - "type": "object" - }, - "ResultSignature": { - "properties": { - "jws": { - "type": "string" - }, - "payload": { - "$ref": "#/$defs/ResultSignaturePayload" - }, - "verify_code": { - "type": "string" - }, - "verify_url": { - "type": "string" - } - }, - "required": [ - "jws", - "payload", - "verify_code", - "verify_url" - ], - "type": "object" - }, - "ResultSignaturePayload": { - "properties": { - "capability": { - "type": "string" - }, - "engine_version": { - "type": "string" - }, - "issued_at": { - "type": "string" - }, - "kid": { - "type": "string" - }, - "operation": { - "type": "string" - }, - "result_hash": { - "type": "string" - }, - "ruleset_hash": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "ruleset_version": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "v": { - "type": "integer" - } - }, - "required": [ - "v", - "kid", - "capability", - "operation", - "ruleset_version", - "ruleset_hash", - "engine_version", - "result_hash", - "issued_at" - ], - "type": "object" - }, - "Review": { - "properties": { - "ai_read": { - "default": 0, - "type": "integer" - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "reading_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "status": { - "default": "verified", - "enum": [ - "draft", - "verified" - ], - "type": "string" - } - }, - "type": "object" - }, - "RunInfo": { - "properties": { - "capability": { - "type": "string" - }, - "contract_version": { - "type": "string" - }, - "duration_ms": { - "type": "integer" - }, - "engine_version": { - "type": "string" - }, - "id": { - "type": "string" - }, - "operation": { - "type": "string" - }, - "received_at": { - "format": "date-time", - "type": "string" - }, - "ruleset_hash": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "ruleset_version": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "capability", - "operation", - "contract_version", - "engine_version", - "ruleset_version", - "ruleset_hash", - "received_at", - "duration_ms" - ], - "type": "object" - } -} - removed
Output schema / properties / client_refs / anyOfRemoved value: -[ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } -] - removed
Output schema / properties / client_refs / defaultRemoved value: -null - added
Output schema / properties / client_refs / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / deprecation / anyOfRemoved value: -[ - { - "items": { - "$ref": "#/$defs/Deprecation" - }, - "type": "array" - }, - { - "type": "null" - } -] - removed
Output schema / properties / deprecation / defaultRemoved value: -null - added
Output schema / properties / deprecation / typeAdded value: +[ + "array", + "null" +] - removed
Output schema / properties / input_hash / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Output schema / properties / input_hash / defaultRemoved value: -null - added
Output schema / properties / input_hash / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / links / anyOfRemoved value: -[ - { - "$ref": "#/$defs/Links" - }, - { - "type": "null" - } -] - removed
Output schema / properties / links / defaultRemoved value: -null - added
Output schema / properties / links / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / reading / anyOfRemoved value: -[ - { - "$ref": "#/$defs/Reading" - }, - { - "type": "null" - } -] - removed
Output schema / properties / reading / defaultRemoved value: -null - added
Output schema / properties / reading / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / request_hash / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Output schema / properties / request_hash / defaultRemoved value: -null - added
Output schema / properties / request_hash / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / result / $refRemoved value: -"#/$defs/IssueCodesResult" - added
Output schema / properties / result / propertiesAdded value: +{ + "areas": { + "type": "array" + }, + "codes": { + "type": "array" + }, + "groups": { + "type": "array" + }, + "manual_quote_code": { + "type": "string" + }, + "note": { + "type": [ + "string", + "null" + ] + }, + "ruleset_version": { + "type": "string" + }, + "total_matches": { + "type": "integer" + } +} - added
Output schema / properties / result / requiredAdded value: +[ + "ruleset_version", + "total_matches", + "codes" +] - added
Output schema / properties / result / typeAdded value: +"object" - removed
Output schema / properties / result_hash / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Output schema / properties / result_hash / defaultRemoved value: -null - added
Output schema / properties / result_hash / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / review / anyOfRemoved value: -[ - { - "$ref": "#/$defs/Review" - }, - { - "type": "null" - } -] - removed
Output schema / properties / review / defaultRemoved value: -null - added
Output schema / properties / review / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / run / anyOfRemoved value: -[ - { - "$ref": "#/$defs/RunInfo" - }, - { - "type": "null" - } -] - removed
Output schema / properties / run / defaultRemoved value: -null - added
Output schema / properties / run / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / signature / anyOfRemoved value: -[ - { - "$ref": "#/$defs/ResultSignature" - }, - { - "type": "null" - } -] - removed
Output schema / properties / signature / defaultRemoved value: -null - added
Output schema / properties / signature / typeAdded value: +[ + "object", + "null" +]
- Changed
property_turnover_quick_estimate35 fields changed- removed
Output schema / $defsRemoved value: -{ - "CostRange": { - "properties": { - "expected": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - }, - "high": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - }, - "low": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - } - }, - "required": [ - "low", - "expected", - "high" - ], - "type": "object" - }, - "Deprecation": { - "properties": { - "field": { - "type": "string" - }, - "until": { - "format": "date", - "type": "string" - }, - "use": { - "type": "string" - } - }, - "required": [ - "field", - "until", - "use" - ], - "type": "object" - }, - "Extent": { - "enum": [ - "spot", - "partial", - "full" - ], - "type": "string" - }, - "FindingResolution": { - "properties": { - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "confidence": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "confirmed": { - "default": false, - "type": "boolean" - }, - "extent": { - "anyOf": [ - { - "$ref": "#/$defs/Extent" - }, - { - "type": "null" - } - ] - }, - "finding_id": { - "type": "string" - }, - "issue_name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "line_ids": { - "default": [], - "items": { - "type": "string" - }, - "type": "array" - }, - "location": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "match_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "model": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "needs_review": { - "default": false, - "type": "boolean" - }, - "not_billed_reason": { - "anyOf": [ - { - "enum": [ - "none", - "ok", - "done", - "no_condition" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "resolution": { - "enum": [ - "exact", - "alias", - "ai", - "unmapped", - "not_billed" - ], - "type": "string" - }, - "suggested_codes": { - "default": [], - "items": { - "type": "string" - }, - "type": "array" - }, - "suggestions": { - "items": { - "$ref": "#/$defs/Suggestion" - }, - "type": "array" - }, - "text": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "uncertain": { - "default": false, - "type": "boolean" - } - }, - "required": [ - "finding_id", - "resolution", - "code", - "extent" - ], - "type": "object" - }, - "Links": { - "properties": { - "downloads": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "how_to_get_files": { - "type": "string" - }, - "web_tool": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "web_tool_prefilled": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "how_to_get_files" - ], - "type": "object" - }, - "Note": { - "properties": { - "code": { - "type": "string" - }, - "finding_ids": { - "default": [], - "items": { - "type": "string" - }, - "type": "array" - }, - "line_ids": { - "default": [], - "items": { - "type": "string" - }, - "type": "array" - }, - "message": { - "type": "string" - } - }, - "required": [ - "code", - "message" - ], - "type": "object" - }, - "Phase": { - "enum": [ - "assess", - "trash_out", - "repairs", - "paint", - "flooring", - "appliances", - "cleaning", - "punch", - "rekey" - ], - "type": "string" - }, - "PriceBasis": { - "enum": [ - "rate_card", - "unit_price", - "labor_derived", - "placeholder" - ], - "type": "string" - }, - "PriceTier": { - "enum": [ - "bulk_contract", - "pm_vendor", - "retail_one_off" - ], - "type": "string" - }, - "Priority": { - "enum": [ - "must", - "should", - "could" - ], - "type": "string" - }, - "Profile": { - "enum": [ - "minimum", - "standard", - "premium" - ], - "type": "string" - }, - "Provenance": { - "properties": { - "rules_as_of": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "ruleset_hash": { - "type": "string" - }, - "ruleset_id": { - "type": "string" - }, - "ruleset_version": { - "type": "string" - }, - "sources": { - "items": { - "$ref": "#/$defs/SourceRef" - }, - "type": "array" - } - }, - "required": [ - "ruleset_id", - "ruleset_version", - "ruleset_hash", - "sources" - ], - "type": "object" - }, - "RateCardUse": { - "properties": { - "entry": { - "type": "integer" - }, - "lines": { - "default": [], - "items": { - "type": "string" - }, - "type": "array" - }, - "note": { - "type": "string" - }, - "target": { - "type": "string" - } - }, - "required": [ - "entry", - "target", - "note" - ], - "type": "object" - }, - "Reading": { - "properties": { - "counts": { - "$ref": "#/$defs/ReadingCounts" - }, - "findings": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array" - }, - "id": { - "type": "string" - }, - "kind": { - "enum": [ - "notes", - "document" - ], - "type": "string" - }, - "model": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "notes": { - "items": { - "$ref": "#/$defs/ReadingNote" - }, - "type": "array" - }, - "prompt_version": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "id", - "kind", - "counts", - "findings" - ], - "type": "object" - }, - "ReadingCounts": { - "properties": { - "ai": { - "type": "integer" - }, - "parser": { - "type": "integer" - }, - "total": { - "type": "integer" - }, - "unmatched": { - "type": "integer" - } - }, - "required": [ - "total", - "ai", - "parser", - "unmatched" - ], - "type": "object" - }, - "ReadingNote": { - "properties": { - "code": { - "type": "string" - }, - "finding_ids": { - "default": [], - "items": { - "type": "string" - }, - "type": "array" - }, - "kind": { - "enum": [ - "warning", - "assumption" - ], - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "kind", - "code", - "message" - ], - "type": "object" - }, - "ReferOutNote": { - "properties": { - "blocks_phases": { - "items": { - "$ref": "#/$defs/Phase" - }, - "type": "array" - }, - "finding_ids": { - "items": { - "type": "string" - }, - "type": "array" - }, - "id": { - "type": "string" - }, - "kind": { - "enum": [ - "assessment", - "compliance" - ], - "type": "string" - }, - "name": { - "type": "string" - }, - "professional": { - "type": "string" - }, - "reason": { - "type": "string" - }, - "sources": { - "items": { - "type": "string" - }, - "type": "array" - }, - "unconfirmed": { - "default": false, - "type": "boolean" - } - }, - "required": [ - "id", - "name", - "professional", - "reason", - "kind", - "finding_ids", - "blocks_phases", - "sources" - ], - "type": "object" - }, - "Region": { - "properties": { - "basis": { - "enum": [ - "metro", - "nonmetro", - "national" - ], - "type": "string" - }, - "cbsa": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "cbsa_name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "vintage": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "zip3": { - "type": "string" - } - }, - "required": [ - "zip3", - "basis" - ], - "type": "object" - }, - "Responsibility": { - "enum": [ - "normal_wear", - "likely_damage", - "elective", - "undetermined", - "mixed" - ], - "type": "string" - }, - "ResultSignature": { - "properties": { - "jws": { - "type": "string" - }, - "payload": { - "$ref": "#/$defs/ResultSignaturePayload" - }, - "verify_code": { - "type": "string" - }, - "verify_url": { - "type": "string" - } - }, - "required": [ - "jws", - "payload", - "verify_code", - "verify_url" - ], - "type": "object" - }, - "ResultSignaturePayload": { - "properties": { - "capability": { - "type": "string" - }, - "engine_version": { - "type": "string" - }, - "issued_at": { - "type": "string" - }, - "kid": { - "type": "string" - }, - "operation": { - "type": "string" - }, - "result_hash": { - "type": "string" - }, - "ruleset_hash": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "ruleset_version": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "v": { - "type": "integer" - } - }, - "required": [ - "v", - "kid", - "capability", - "operation", - "ruleset_version", - "ruleset_hash", - "engine_version", - "result_hash", - "issued_at" - ], - "type": "object" - }, - "Review": { - "properties": { - "ai_read": { - "default": 0, - "type": "integer" - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "reading_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "status": { - "default": "verified", - "enum": [ - "draft", - "verified" - ], - "type": "string" - } - }, - "type": "object" - }, - "RunInfo": { - "properties": { - "capability": { - "type": "string" - }, - "contract_version": { - "type": "string" - }, - "duration_ms": { - "type": "integer" - }, - "engine_version": { - "type": "string" - }, - "id": { - "type": "string" - }, - "operation": { - "type": "string" - }, - "received_at": { - "format": "date-time", - "type": "string" - }, - "ruleset_hash": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "ruleset_version": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "capability", - "operation", - "contract_version", - "engine_version", - "ruleset_version", - "ruleset_hash", - "received_at", - "duration_ms" - ], - "type": "object" - }, - "ScopeLine": { - "properties": { - "allowance": { - "anyOf": [ - { - "$ref": "#/$defs/CostRange" - }, - { - "type": "null" - } - ], - "default": null - }, - "confidence": { - "enum": [ - "sourced", - "industry_typical", - "assumed" - ], - "type": "string" - }, - "cost": { - "$ref": "#/$defs/CostRange" - }, - "decision": { - "anyOf": [ - { - "enum": [ - "approve", - "decline", - "defer" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "finding_ids": { - "items": { - "type": "string" - }, - "type": "array" - }, - "line_id": { - "type": "string" - }, - "location": { - "type": "string" - }, - "name": { - "type": "string" - }, - "needs_review": { - "default": false, - "type": "boolean" - }, - "phase": { - "$ref": "#/$defs/Phase" - }, - "price_basis": { - "$ref": "#/$defs/PriceBasis" - }, - "priority": { - "$ref": "#/$defs/Priority" - }, - "quantity": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - }, - "quantity_source": { - "enum": [ - "given", - "converted", - "derived", - "fixed" - ], - "type": "string" - }, - "refer_out": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "responsibility_by_finding": { - "additionalProperties": { - "$ref": "#/$defs/Responsibility" - }, - "type": "object" - }, - "responsibility_hint": { - "$ref": "#/$defs/Responsibility" - }, - "rule_ids": { - "items": { - "type": "string" - }, - "type": "array" - }, - "task_id": { - "type": "string" - }, - "to_confirm": { - "default": false, - "type": "boolean" - }, - "trade": { - "$ref": "#/$defs/Trade" - }, - "unit_price": { - "$ref": "#/$defs/CostRange" - }, - "uom": { - "$ref": "#/$defs/Uom" - }, - "vendor_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "line_id", - "task_id", - "name", - "trade", - "phase", - "priority", - "location", - "finding_ids", - "quantity", - "uom", - "quantity_source", - "price_basis", - "unit_price", - "cost", - "confidence", - "responsibility_hint", - "rule_ids" - ], - "type": "object" - }, - "ScopeResult": { - "properties": { - "assumptions": { - "items": { - "$ref": "#/$defs/Note" - }, - "type": "array" - }, - "detail": { - "enum": [ - "summary", - "full" - ], - "type": "string" - }, - "disclaimer": { - "type": "string" - }, - "findings": { - "items": { - "$ref": "#/$defs/FindingResolution" - }, - "type": "array" - }, - "lines": { - "items": { - "$ref": "#/$defs/ScopeLine" - }, - "type": "array" - }, - "lines_omitted": { - "type": "integer" - }, - "omitted_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "price_tier": { - "$ref": "#/$defs/PriceTier", - "default": "pm_vendor" - }, - "profile": { - "$ref": "#/$defs/Profile" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "rate_card_applied": { - "items": { - "$ref": "#/$defs/RateCardUse" - }, - "type": "array" - }, - "rate_card_ignored": { - "items": { - "$ref": "#/$defs/RateCardUse" - }, - "type": "array" - }, - "refer_outs": { - "items": { - "$ref": "#/$defs/ReferOutNote" - }, - "type": "array" - }, - "region": { - "$ref": "#/$defs/Region" - }, - "summary": { - "type": "string" - }, - "totals": { - "$ref": "#/$defs/Totals" - }, - "trade_scopes": { - "items": { - "$ref": "#/$defs/TradeScope" - }, - "type": "array" - }, - "unknowns": { - "items": { - "$ref": "#/$defs/Note" - }, - "type": "array" - }, - "warnings": { - "items": { - "$ref": "#/$defs/Note" - }, - "type": "array" - } - }, - "required": [ - "summary", - "disclaimer", - "warnings", - "totals", - "refer_outs", - "trade_scopes", - "lines", - "lines_omitted", - "findings", - "assumptions", - "unknowns", - "detail", - "region", - "profile", - "provenance" - ], - "type": "object" - }, - "SourceRef": { - "properties": { - "accessed": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "id": { - "type": "string" - }, - "title": { - "type": "string" - }, - "url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "id", - "title" - ], - "type": "object" - }, - "Suggestion": { - "properties": { - "code": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "code", - "name" - ], - "type": "object" - }, - "Totals": { - "properties": { - "allowances": { - "$ref": "#/$defs/CostRange" - }, - "approved": { - "anyOf": [ - { - "$ref": "#/$defs/CostRange" - }, - { - "type": "null" - } - ], - "default": null - }, - "could": { - "$ref": "#/$defs/CostRange" - }, - "must": { - "$ref": "#/$defs/CostRange" - }, - "note": { - "default": "must, should and could are work lines only. visit_charges (minimum call-out and trip fees, once per trade) are added on top: subtotal = must + should + could + visit_charges; total = subtotal + tax. allowances and to_confirm (uncertain items) are outside the total.", - "type": "string" - }, - "should": { - "$ref": "#/$defs/CostRange" - }, - "subtotal": { - "$ref": "#/$defs/CostRange" - }, - "tax": { - "$ref": "#/$defs/CostRange" - }, - "to_confirm": { - "$ref": "#/$defs/CostRange" - }, - "total": { - "$ref": "#/$defs/CostRange" - }, - "visit_charges": { - "$ref": "#/$defs/CostRange" - } - }, - "required": [ - "must", - "should", - "could", - "visit_charges", - "subtotal", - "tax", - "total" - ], - "type": "object" - }, - "Trade": { - "enum": [ - "hauling", - "handyman", - "drywall", - "painter", - "flooring", - "carpet_cleaning", - "cleaning", - "appliance", - "plumber", - "electrician", - "hvac", - "locksmith", - "pest_control", - "landscaping", - "window_glass", - "environmental", - "structural" - ], - "type": "string" - }, - "TradeScope": { - "properties": { - "line_ids": { - "items": { - "type": "string" - }, - "type": "array" - }, - "lines_cost": { - "$ref": "#/$defs/CostRange" - }, - "phase": { - "$ref": "#/$defs/Phase" - }, - "total": { - "$ref": "#/$defs/CostRange" - }, - "trade": { - "$ref": "#/$defs/Trade" - }, - "vendor": { - "anyOf": [ - { - "$ref": "#/$defs/Vendor" - }, - { - "type": "null" - } - ] - }, - "visit_charges": { - "$ref": "#/$defs/CostRange" - } - }, - "required": [ - "trade", - "vendor", - "phase", - "line_ids", - "lines_cost", - "visit_charges", - "total" - ], - "type": "object" - }, - "Uom": { - "enum": [ - "each", - "sq_ft", - "sq_ft_floor", - "sq_yd", - "linear_ft", - "room", - "unit", - "bedroom", - "bathroom", - "hour", - "cu_yd", - "visit" - ], - "type": "string" - }, - "Vendor": { - "additionalProperties": false, - "properties": { - "contact": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "name": { - "maxLength": 120, - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - } -} - removed
Output schema / properties / client_refs / anyOfRemoved value: -[ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } -] - removed
Output schema / properties / client_refs / defaultRemoved value: -null - added
Output schema / properties / client_refs / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / deprecation / anyOfRemoved value: -[ - { - "items": { - "$ref": "#/$defs/Deprecation" - }, - "type": "array" - }, - { - "type": "null" - } -] - removed
Output schema / properties / deprecation / defaultRemoved value: -null - added
Output schema / properties / deprecation / typeAdded value: +[ + "array", + "null" +] - removed
Output schema / properties / input_hash / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Output schema / properties / input_hash / defaultRemoved value: -null - added
Output schema / properties / input_hash / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / links / anyOfRemoved value: -[ - { - "$ref": "#/$defs/Links" - }, - { - "type": "null" - } -] - removed
Output schema / properties / links / defaultRemoved value: -null - added
Output schema / properties / links / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / reading / anyOfRemoved value: -[ - { - "$ref": "#/$defs/Reading" - }, - { - "type": "null" - } -] - removed
Output schema / properties / reading / defaultRemoved value: -null - added
Output schema / properties / reading / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / request_hash / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Output schema / properties / request_hash / defaultRemoved value: -null - added
Output schema / properties / request_hash / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / result / $refRemoved value: -"#/$defs/ScopeResult" - added
Output schema / properties / result / propertiesAdded value: +{ + "assumptions": { + "type": "array" + }, + "detail": { + "type": "string" + }, + "disclaimer": { + "type": "string" + }, + "findings": { + "type": "array" + }, + "lines": { + "type": "array" + }, + "lines_omitted": { + "type": "integer" + }, + "omitted_note": { + "type": [ + "string", + "null" + ] + }, + "price_tier": { + "type": "string" + }, + "profile": { + "type": "string" + }, + "provenance": { + "type": "object" + }, + "rate_card_applied": { + "type": "array" + }, + "rate_card_ignored": { + "type": "array" + }, + "refer_outs": { + "type": "array" + }, + "region": { + "type": "object" + }, + "summary": { + "type": "string" + }, + "totals": { + "type": "object" + }, + "trade_scopes": { + "type": "array" + }, + "unknowns": { + "type": "array" + }, + "warnings": { + "type": "array" + } +} - added
Output schema / properties / result / requiredAdded value: +[ + "summary", + "disclaimer", + "warnings", + "totals", + "refer_outs", + "trade_scopes", + "lines", + "lines_omitted", + "findings", + "assumptions", + "unknowns", + "detail", + "region", + "profile", + "provenance" +] - added
Output schema / properties / result / typeAdded value: +"object" - removed
Output schema / properties / result_hash / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Output schema / properties / result_hash / defaultRemoved value: -null - added
Output schema / properties / result_hash / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / review / anyOfRemoved value: -[ - { - "$ref": "#/$defs/Review" - }, - { - "type": "null" - } -] - removed
Output schema / properties / review / defaultRemoved value: -null - added
Output schema / properties / review / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / run / anyOfRemoved value: -[ - { - "$ref": "#/$defs/RunInfo" - }, - { - "type": "null" - } -] - removed
Output schema / properties / run / defaultRemoved value: -null - added
Output schema / properties / run / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / signature / anyOfRemoved value: -[ - { - "$ref": "#/$defs/ResultSignature" - }, - { - "type": "null" - } -] - removed
Output schema / properties / signature / defaultRemoved value: -null - added
Output schema / properties / signature / typeAdded value: +[ + "object", + "null" +]
- Changed
property_turnover_scope35 fields changed- removed
Output schema / $defsRemoved value: -{ - "CostRange": { - "properties": { - "expected": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - }, - "high": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - }, - "low": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - } - }, - "required": [ - "low", - "expected", - "high" - ], - "type": "object" - }, - "Deprecation": { - "properties": { - "field": { - "type": "string" - }, - "until": { - "format": "date", - "type": "string" - }, - "use": { - "type": "string" - } - }, - "required": [ - "field", - "until", - "use" - ], - "type": "object" - }, - "Extent": { - "enum": [ - "spot", - "partial", - "full" - ], - "type": "string" - }, - "FindingResolution": { - "properties": { - "code": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "confidence": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "confirmed": { - "default": false, - "type": "boolean" - }, - "extent": { - "anyOf": [ - { - "$ref": "#/$defs/Extent" - }, - { - "type": "null" - } - ] - }, - "finding_id": { - "type": "string" - }, - "issue_name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "line_ids": { - "default": [], - "items": { - "type": "string" - }, - "type": "array" - }, - "location": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "match_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "model": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "needs_review": { - "default": false, - "type": "boolean" - }, - "not_billed_reason": { - "anyOf": [ - { - "enum": [ - "none", - "ok", - "done", - "no_condition" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "resolution": { - "enum": [ - "exact", - "alias", - "ai", - "unmapped", - "not_billed" - ], - "type": "string" - }, - "suggested_codes": { - "default": [], - "items": { - "type": "string" - }, - "type": "array" - }, - "suggestions": { - "items": { - "$ref": "#/$defs/Suggestion" - }, - "type": "array" - }, - "text": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "uncertain": { - "default": false, - "type": "boolean" - } - }, - "required": [ - "finding_id", - "resolution", - "code", - "extent" - ], - "type": "object" - }, - "Links": { - "properties": { - "downloads": { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - "how_to_get_files": { - "type": "string" - }, - "web_tool": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "web_tool_prefilled": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "how_to_get_files" - ], - "type": "object" - }, - "Note": { - "properties": { - "code": { - "type": "string" - }, - "finding_ids": { - "default": [], - "items": { - "type": "string" - }, - "type": "array" - }, - "line_ids": { - "default": [], - "items": { - "type": "string" - }, - "type": "array" - }, - "message": { - "type": "string" - } - }, - "required": [ - "code", - "message" - ], - "type": "object" - }, - "Phase": { - "enum": [ - "assess", - "trash_out", - "repairs", - "paint", - "flooring", - "appliances", - "cleaning", - "punch", - "rekey" - ], - "type": "string" - }, - "PriceBasis": { - "enum": [ - "rate_card", - "unit_price", - "labor_derived", - "placeholder" - ], - "type": "string" - }, - "PriceTier": { - "enum": [ - "bulk_contract", - "pm_vendor", - "retail_one_off" - ], - "type": "string" - }, - "Priority": { - "enum": [ - "must", - "should", - "could" - ], - "type": "string" - }, - "Profile": { - "enum": [ - "minimum", - "standard", - "premium" - ], - "type": "string" - }, - "Provenance": { - "properties": { - "rules_as_of": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "ruleset_hash": { - "type": "string" - }, - "ruleset_id": { - "type": "string" - }, - "ruleset_version": { - "type": "string" - }, - "sources": { - "items": { - "$ref": "#/$defs/SourceRef" - }, - "type": "array" - } - }, - "required": [ - "ruleset_id", - "ruleset_version", - "ruleset_hash", - "sources" - ], - "type": "object" - }, - "RateCardUse": { - "properties": { - "entry": { - "type": "integer" - }, - "lines": { - "default": [], - "items": { - "type": "string" - }, - "type": "array" - }, - "note": { - "type": "string" - }, - "target": { - "type": "string" - } - }, - "required": [ - "entry", - "target", - "note" - ], - "type": "object" - }, - "Reading": { - "properties": { - "counts": { - "$ref": "#/$defs/ReadingCounts" - }, - "findings": { - "items": { - "additionalProperties": true, - "type": "object" - }, - "type": "array" - }, - "id": { - "type": "string" - }, - "kind": { - "enum": [ - "notes", - "document" - ], - "type": "string" - }, - "model": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "notes": { - "items": { - "$ref": "#/$defs/ReadingNote" - }, - "type": "array" - }, - "prompt_version": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "id", - "kind", - "counts", - "findings" - ], - "type": "object" - }, - "ReadingCounts": { - "properties": { - "ai": { - "type": "integer" - }, - "parser": { - "type": "integer" - }, - "total": { - "type": "integer" - }, - "unmatched": { - "type": "integer" - } - }, - "required": [ - "total", - "ai", - "parser", - "unmatched" - ], - "type": "object" - }, - "ReadingNote": { - "properties": { - "code": { - "type": "string" - }, - "finding_ids": { - "default": [], - "items": { - "type": "string" - }, - "type": "array" - }, - "kind": { - "enum": [ - "warning", - "assumption" - ], - "type": "string" - }, - "message": { - "type": "string" - } - }, - "required": [ - "kind", - "code", - "message" - ], - "type": "object" - }, - "ReferOutNote": { - "properties": { - "blocks_phases": { - "items": { - "$ref": "#/$defs/Phase" - }, - "type": "array" - }, - "finding_ids": { - "items": { - "type": "string" - }, - "type": "array" - }, - "id": { - "type": "string" - }, - "kind": { - "enum": [ - "assessment", - "compliance" - ], - "type": "string" - }, - "name": { - "type": "string" - }, - "professional": { - "type": "string" - }, - "reason": { - "type": "string" - }, - "sources": { - "items": { - "type": "string" - }, - "type": "array" - }, - "unconfirmed": { - "default": false, - "type": "boolean" - } - }, - "required": [ - "id", - "name", - "professional", - "reason", - "kind", - "finding_ids", - "blocks_phases", - "sources" - ], - "type": "object" - }, - "Region": { - "properties": { - "basis": { - "enum": [ - "metro", - "nonmetro", - "national" - ], - "type": "string" - }, - "cbsa": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "cbsa_name": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "vintage": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "zip3": { - "type": "string" - } - }, - "required": [ - "zip3", - "basis" - ], - "type": "object" - }, - "Responsibility": { - "enum": [ - "normal_wear", - "likely_damage", - "elective", - "undetermined", - "mixed" - ], - "type": "string" - }, - "ResultSignature": { - "properties": { - "jws": { - "type": "string" - }, - "payload": { - "$ref": "#/$defs/ResultSignaturePayload" - }, - "verify_code": { - "type": "string" - }, - "verify_url": { - "type": "string" - } - }, - "required": [ - "jws", - "payload", - "verify_code", - "verify_url" - ], - "type": "object" - }, - "ResultSignaturePayload": { - "properties": { - "capability": { - "type": "string" - }, - "engine_version": { - "type": "string" - }, - "issued_at": { - "type": "string" - }, - "kid": { - "type": "string" - }, - "operation": { - "type": "string" - }, - "result_hash": { - "type": "string" - }, - "ruleset_hash": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "ruleset_version": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "v": { - "type": "integer" - } - }, - "required": [ - "v", - "kid", - "capability", - "operation", - "ruleset_version", - "ruleset_hash", - "engine_version", - "result_hash", - "issued_at" - ], - "type": "object" - }, - "Review": { - "properties": { - "ai_read": { - "default": 0, - "type": "integer" - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "reading_id": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "status": { - "default": "verified", - "enum": [ - "draft", - "verified" - ], - "type": "string" - } - }, - "type": "object" - }, - "RunInfo": { - "properties": { - "capability": { - "type": "string" - }, - "contract_version": { - "type": "string" - }, - "duration_ms": { - "type": "integer" - }, - "engine_version": { - "type": "string" - }, - "id": { - "type": "string" - }, - "operation": { - "type": "string" - }, - "received_at": { - "format": "date-time", - "type": "string" - }, - "ruleset_hash": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - }, - "ruleset_version": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ] - } - }, - "required": [ - "id", - "capability", - "operation", - "contract_version", - "engine_version", - "ruleset_version", - "ruleset_hash", - "received_at", - "duration_ms" - ], - "type": "object" - }, - "ScopeLine": { - "properties": { - "allowance": { - "anyOf": [ - { - "$ref": "#/$defs/CostRange" - }, - { - "type": "null" - } - ], - "default": null - }, - "confidence": { - "enum": [ - "sourced", - "industry_typical", - "assumed" - ], - "type": "string" - }, - "cost": { - "$ref": "#/$defs/CostRange" - }, - "decision": { - "anyOf": [ - { - "enum": [ - "approve", - "decline", - "defer" - ], - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "finding_ids": { - "items": { - "type": "string" - }, - "type": "array" - }, - "line_id": { - "type": "string" - }, - "location": { - "type": "string" - }, - "name": { - "type": "string" - }, - "needs_review": { - "default": false, - "type": "boolean" - }, - "phase": { - "$ref": "#/$defs/Phase" - }, - "price_basis": { - "$ref": "#/$defs/PriceBasis" - }, - "priority": { - "$ref": "#/$defs/Priority" - }, - "quantity": { - "anyOf": [ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - }, - "quantity_source": { - "enum": [ - "given", - "converted", - "derived", - "fixed" - ], - "type": "string" - }, - "refer_out": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "responsibility_by_finding": { - "additionalProperties": { - "$ref": "#/$defs/Responsibility" - }, - "type": "object" - }, - "responsibility_hint": { - "$ref": "#/$defs/Responsibility" - }, - "rule_ids": { - "items": { - "type": "string" - }, - "type": "array" - }, - "task_id": { - "type": "string" - }, - "to_confirm": { - "default": false, - "type": "boolean" - }, - "trade": { - "$ref": "#/$defs/Trade" - }, - "unit_price": { - "$ref": "#/$defs/CostRange" - }, - "uom": { - "$ref": "#/$defs/Uom" - }, - "vendor_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "line_id", - "task_id", - "name", - "trade", - "phase", - "priority", - "location", - "finding_ids", - "quantity", - "uom", - "quantity_source", - "price_basis", - "unit_price", - "cost", - "confidence", - "responsibility_hint", - "rule_ids" - ], - "type": "object" - }, - "ScopeResult": { - "properties": { - "assumptions": { - "items": { - "$ref": "#/$defs/Note" - }, - "type": "array" - }, - "detail": { - "enum": [ - "summary", - "full" - ], - "type": "string" - }, - "disclaimer": { - "type": "string" - }, - "findings": { - "items": { - "$ref": "#/$defs/FindingResolution" - }, - "type": "array" - }, - "lines": { - "items": { - "$ref": "#/$defs/ScopeLine" - }, - "type": "array" - }, - "lines_omitted": { - "type": "integer" - }, - "omitted_note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "price_tier": { - "$ref": "#/$defs/PriceTier", - "default": "pm_vendor" - }, - "profile": { - "$ref": "#/$defs/Profile" - }, - "provenance": { - "$ref": "#/$defs/Provenance" - }, - "rate_card_applied": { - "items": { - "$ref": "#/$defs/RateCardUse" - }, - "type": "array" - }, - "rate_card_ignored": { - "items": { - "$ref": "#/$defs/RateCardUse" - }, - "type": "array" - }, - "refer_outs": { - "items": { - "$ref": "#/$defs/ReferOutNote" - }, - "type": "array" - }, - "region": { - "$ref": "#/$defs/Region" - }, - "summary": { - "type": "string" - }, - "totals": { - "$ref": "#/$defs/Totals" - }, - "trade_scopes": { - "items": { - "$ref": "#/$defs/TradeScope" - }, - "type": "array" - }, - "unknowns": { - "items": { - "$ref": "#/$defs/Note" - }, - "type": "array" - }, - "warnings": { - "items": { - "$ref": "#/$defs/Note" - }, - "type": "array" - } - }, - "required": [ - "summary", - "disclaimer", - "warnings", - "totals", - "refer_outs", - "trade_scopes", - "lines", - "lines_omitted", - "findings", - "assumptions", - "unknowns", - "detail", - "region", - "profile", - "provenance" - ], - "type": "object" - }, - "SourceRef": { - "properties": { - "accessed": { - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "id": { - "type": "string" - }, - "title": { - "type": "string" - }, - "url": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - } - }, - "required": [ - "id", - "title" - ], - "type": "object" - }, - "Suggestion": { - "properties": { - "code": { - "type": "string" - }, - "name": { - "type": "string" - } - }, - "required": [ - "code", - "name" - ], - "type": "object" - }, - "Totals": { - "properties": { - "allowances": { - "$ref": "#/$defs/CostRange" - }, - "approved": { - "anyOf": [ - { - "$ref": "#/$defs/CostRange" - }, - { - "type": "null" - } - ], - "default": null - }, - "could": { - "$ref": "#/$defs/CostRange" - }, - "must": { - "$ref": "#/$defs/CostRange" - }, - "note": { - "default": "must, should and could are work lines only. visit_charges (minimum call-out and trip fees, once per trade) are added on top: subtotal = must + should + could + visit_charges; total = subtotal + tax. allowances and to_confirm (uncertain items) are outside the total.", - "type": "string" - }, - "should": { - "$ref": "#/$defs/CostRange" - }, - "subtotal": { - "$ref": "#/$defs/CostRange" - }, - "tax": { - "$ref": "#/$defs/CostRange" - }, - "to_confirm": { - "$ref": "#/$defs/CostRange" - }, - "total": { - "$ref": "#/$defs/CostRange" - }, - "visit_charges": { - "$ref": "#/$defs/CostRange" - } - }, - "required": [ - "must", - "should", - "could", - "visit_charges", - "subtotal", - "tax", - "total" - ], - "type": "object" - }, - "Trade": { - "enum": [ - "hauling", - "handyman", - "drywall", - "painter", - "flooring", - "carpet_cleaning", - "cleaning", - "appliance", - "plumber", - "electrician", - "hvac", - "locksmith", - "pest_control", - "landscaping", - "window_glass", - "environmental", - "structural" - ], - "type": "string" - }, - "TradeScope": { - "properties": { - "line_ids": { - "items": { - "type": "string" - }, - "type": "array" - }, - "lines_cost": { - "$ref": "#/$defs/CostRange" - }, - "phase": { - "$ref": "#/$defs/Phase" - }, - "total": { - "$ref": "#/$defs/CostRange" - }, - "trade": { - "$ref": "#/$defs/Trade" - }, - "vendor": { - "anyOf": [ - { - "$ref": "#/$defs/Vendor" - }, - { - "type": "null" - } - ] - }, - "visit_charges": { - "$ref": "#/$defs/CostRange" - } - }, - "required": [ - "trade", - "vendor", - "phase", - "line_ids", - "lines_cost", - "visit_charges", - "total" - ], - "type": "object" - }, - "Uom": { - "enum": [ - "each", - "sq_ft", - "sq_ft_floor", - "sq_yd", - "linear_ft", - "room", - "unit", - "bedroom", - "bathroom", - "hour", - "cu_yd", - "visit" - ], - "type": "string" - }, - "Vendor": { - "additionalProperties": false, - "properties": { - "contact": { - "anyOf": [ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "name": { - "maxLength": 120, - "type": "string" - } - }, - "required": [ - "name" - ], - "type": "object" - } -} - removed
Output schema / properties / client_refs / anyOfRemoved value: -[ - { - "additionalProperties": true, - "type": "object" - }, - { - "type": "null" - } -] - removed
Output schema / properties / client_refs / defaultRemoved value: -null - added
Output schema / properties / client_refs / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / deprecation / anyOfRemoved value: -[ - { - "items": { - "$ref": "#/$defs/Deprecation" - }, - "type": "array" - }, - { - "type": "null" - } -] - removed
Output schema / properties / deprecation / defaultRemoved value: -null - added
Output schema / properties / deprecation / typeAdded value: +[ + "array", + "null" +] - removed
Output schema / properties / input_hash / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Output schema / properties / input_hash / defaultRemoved value: -null - added
Output schema / properties / input_hash / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / links / anyOfRemoved value: -[ - { - "$ref": "#/$defs/Links" - }, - { - "type": "null" - } -] - removed
Output schema / properties / links / defaultRemoved value: -null - added
Output schema / properties / links / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / reading / anyOfRemoved value: -[ - { - "$ref": "#/$defs/Reading" - }, - { - "type": "null" - } -] - removed
Output schema / properties / reading / defaultRemoved value: -null - added
Output schema / properties / reading / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / request_hash / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Output schema / properties / request_hash / defaultRemoved value: -null - added
Output schema / properties / request_hash / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / result / $refRemoved value: -"#/$defs/ScopeResult" - added
Output schema / properties / result / propertiesAdded value: +{ + "assumptions": { + "type": "array" + }, + "detail": { + "type": "string" + }, + "disclaimer": { + "type": "string" + }, + "findings": { + "type": "array" + }, + "lines": { + "type": "array" + }, + "lines_omitted": { + "type": "integer" + }, + "omitted_note": { + "type": [ + "string", + "null" + ] + }, + "price_tier": { + "type": "string" + }, + "profile": { + "type": "string" + }, + "provenance": { + "type": "object" + }, + "rate_card_applied": { + "type": "array" + }, + "rate_card_ignored": { + "type": "array" + }, + "refer_outs": { + "type": "array" + }, + "region": { + "type": "object" + }, + "summary": { + "type": "string" + }, + "totals": { + "type": "object" + }, + "trade_scopes": { + "type": "array" + }, + "unknowns": { + "type": "array" + }, + "warnings": { + "type": "array" + } +} - added
Output schema / properties / result / requiredAdded value: +[ + "summary", + "disclaimer", + "warnings", + "totals", + "refer_outs", + "trade_scopes", + "lines", + "lines_omitted", + "findings", + "assumptions", + "unknowns", + "detail", + "region", + "profile", + "provenance" +] - added
Output schema / properties / result / typeAdded value: +"object" - removed
Output schema / properties / result_hash / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Output schema / properties / result_hash / defaultRemoved value: -null - added
Output schema / properties / result_hash / typeAdded value: +[ + "string", + "null" +] - removed
Output schema / properties / review / anyOfRemoved value: -[ - { - "$ref": "#/$defs/Review" - }, - { - "type": "null" - } -] - removed
Output schema / properties / review / defaultRemoved value: -null - added
Output schema / properties / review / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / run / anyOfRemoved value: -[ - { - "$ref": "#/$defs/RunInfo" - }, - { - "type": "null" - } -] - removed
Output schema / properties / run / defaultRemoved value: -null - added
Output schema / properties / run / typeAdded value: +[ + "object", + "null" +] - removed
Output schema / properties / signature / anyOfRemoved value: -[ - { - "$ref": "#/$defs/ResultSignature" - }, - { - "type": "null" - } -] - removed
Output schema / properties / signature / defaultRemoved value: -null - added
Output schema / properties / signature / typeAdded value: +[ + "object", + "null" +]
2 tool updates
- Changed
deposit_settlement_rules11 fields changed- added
Output schema / $defs / Alternative / properties / demand_within_daysAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null +} - changed
Output schema / $defs / DepositCap / properties / effective_by / enumPrevious value: -[ - "collected", - "lease_signed" -]New value: +[ + "collected", + "lease_signed", + "required" +] - added
Output schema / $defs / DepositCap / properties / periodic_after_monthsAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DepositCap / properties / pet_cap_monthsAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DepositCap / properties / post_closing_occupancy_fromAdded value: +{ + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / PenaltyRule / properties / interest_only_fixed_usdAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / PenaltyRule / properties / interest_only_multipleAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / SafeHarbor / properties / conditionsAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / SafeHarbor / properties / late_addressAdded value: +{ + "anyOf": [ + { + "const": "unsettled", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / SafeHarbor / properties / lease_notice_address_countsAdded value: +{ + "default": false, + "type": "boolean" +} - added
Output schema / $defs / SafeHarbor / properties / requires_mailingAdded value: +{ + "default": false, + "type": "boolean" +}
- Changed
deposit_settlement_settle32 fields changed- changed
Input schema / $defs / Deduction / properties / category / descriptionPrevious value: -"One of: unpaid_rent, unpaid_utilities, cleaning, carpet, flooring, paint, blinds_window_coverings, appliance, fixture_or_hardware, wall_or_door_repair, key_or_lock, late_fees, lease_break_fee, moving_and_storage, reletting_costs (advertising or a broker to re-rent after an early move-out), trash_and_abandoned_items (removing trash or belongings left behind), other_damage, other. Carpet cleaning is cleaning (with cleaning_kind), not carpet."New value: +"Charge category; carpet cleaning uses cleaning with cleaning_kind, not carpet." - changed
Input schema / properties / as_of / descriptionPrevious value: -"Today's date (YYYY-MM-DD) for the deadline status. Defaults to today (UTC); send it for repeatable results."New value: +"Date for deadline status; defaults to today (UTC). Send YYYY-MM-DD for repeatable results." - changed
Input schema / properties / claim_notice_sent_on / descriptionPrevious value: -"Day you sent the written notice of intent to impose a claim on the deposit (YYYY-MM-DD). Florida (due within 30 days of termination) and the District of Columbia (within 45 days): the balance is due 30 days after it; a late notice does not count."New value: +"Written claim notice sent (YYYY-MM-DD). FL: within 30 days of termination; DC:45. Balance due 30 days after timely notice; late notice does not count." - added
Input schema / properties / colorado_post_closing_occupancyAdded value: +{ + "description": "Colorado: buyer-landlord bought this residence from seller-tenant; both executed purchase-contract post-closing occupancy before the deposit was required. True confirms all facts; false excludes; null unknown. Exception from 2027-01-01.", + "type": "boolean" +} - changed
Input schema / properties / county / descriptionPrevious value: -"Tennessee only: the county the unit is in (the landlord-tenant act applies only in counties over 75,000 by the 2010 census, 66-28-102(a)). Taken from the city when it lies in one county."New value: +"TN county: act applies over 75,000 population by 2010 census (66-28-102(a)). Inferred from city only if unambiguous." - changed
Input schema / properties / deductions / descriptionPrevious value: -"What you intend to deduct (or, for a tenant, what the landlord listed). An explicit empty list means nothing is deducted (it decides the shorter no-deduction periods, e.g. Montana 10 days, Alaska 14); leave it out when that is not known yet."New value: +"Charges to deduct (or the landlord's list). Explicit [] means no deductions and selects shorter periods (MT10 days, AK14); omit when unknown." - changed
Input schema / properties / demand_received_on / descriptionPrevious value: -"Day you received the tenant's demand for the deposit (YYYY-MM-DD; written in Oklahoma, by first-class mail in Maryland 8-203(h)). Arizona, Kansas, Oklahoma, South Carolina and Mississippi start the clock on it."New value: +"Deposit demand received (YYYY-MM-DD): written in OK; first-class mail in MD (8-203(h)). Starts clocks in AZ/KS/OK/SC/MS." - changed
Input schema / properties / deposit_collected_on / descriptionPrevious value: -"Day the deposit was collected (YYYY-MM-DD); defaults to move_in_on. California (AB 12, from 2024-07-01) and Colorado caps depend on it."New value: +"Collection date; defaults to move_in_on. CA AB12 uses it. CO: proxy only if deposit_required_on is absent; never proves the exception." - changed
Input schema / properties / deposit_in_separate_account / descriptionPrevious value: -"Tennessee only (66-28-301(a)): the deposit was kept in a separate account used only for deposits. No account and no damage listing means none of it can be kept (66-28-301(c))."New value: +"TN 66-28-301(a): deposit-only separate account. No account and no damage listing means none can be kept (c)." - added
Input schema / properties / deposit_required_onAdded value: +{ + "description": "Colorado cap: date submission was required. Collection, move-out and as_of cannot establish the 2027 exception.", + "format": "date", + "type": "string" +} - changed
Input schema / properties / forwarding_address_received_on / descriptionPrevious value: -"Day you received the tenant's written forwarding address (YYYY-MM-DD). Several states start or hold the clock on it (Texas, Connecticut, Iowa, Minnesota)."New value: +"Written forwarding address received (YYYY-MM-DD). Can start/hold clocks in TX, CT, IA, MN." - changed
Input schema / properties / interest_paid_through / descriptionPrevious value: -"Interest already paid or credited to the tenant up to this day (annual-payment rules: San Francisco, Los Angeles, Berkeley, Connecticut, Massachusetts, ...): interest is counted from it."New value: +"Interest already paid/credited through this date; accrual starts here (annual-payment rules, e.g. SF/LA/Berkeley/CT/MA)." - changed
Input schema / properties / interest_rate_percent / descriptionPrevious value: -"Annual rate the deposit account paid, where the law sets interest at the bank's rate (New Jersey, North Dakota, New Hampshire, New York, Pennsylvania, Portland), or caps it (Massachusetts: 5% or the bank's lesser rate). Without it bank-rate interest is unknown. Illinois 765 ILCS 715 uses IDFPR's published rate instead."New value: +"Annual deposit-bank rate: NJ/ND/NH/NY/PA/Portland; MA uses lesser of bank rate or 5%. Omitted bank rate is unknown. IL 765 ILCS 715 uses published IDFPR rate instead." - changed
Input schema / properties / landlord_filed_action_on / descriptionPrevious value: -"Michigan only (YYYY-MM-DD): day the landlord sued for the damages claimed (554.613: sue or return the balance within 45 days). Not given: no suit assumed."New value: +"MI 554.613: date landlord sued for claimed damage (YYYY-MM-DD); sue or return balance within 45 days. Omitted assumes no suit." - changed
Input schema / properties / lease_end_on / descriptionPrevious value: -"Day the lease was scheduled to end (YYYY-MM-DD), when it differs from when the tenancy actually ended (a broken lease). Lost rent and lease-break charges run to it; deadlines do not (they follow tenancy_ended_on, else the move-out, with the scheduled end as a later alternative)."New value: +"Scheduled lease end (YYYY-MM-DD), if different from actual tenancy end. Lost rent/lease-break charges use it. Deadlines use tenancy_ended_on, else move-out; scheduled end remains a later alternative." - changed
Input schema / properties / lease_signed_or_renewed_on / descriptionPrevious value: -"Day the current lease was signed or last renewed (YYYY-MM-DD). Georgia (2024-07-01) and Maryland (2024-10-01) caps apply to leases from then; defaults to move_in_on, with a warning that a later renewal may bring the new cap."New value: +"Current lease signing/last renewal (YYYY-MM-DD). GA cap from 2024-07-01; MD from 2024-10-01. Defaults move_in_on; warns later renewal may activate cap." - changed
Input schema / properties / new_tenant_moved_in_on / descriptionPrevious value: -"Day a new tenant moved in, if the unit was re-rented (YYYY-MM-DD). West Virginia and Wisconsin can end the period earlier; rent claimed for days from it on is not recoverable (re-rent mitigation)."New value: +"Re-rented: new tenant's move-in date (YYYY-MM-DD). Can shorten WV/WI periods; rent overlapping the new tenancy is unrecoverable." - changed
Input schema / properties / owner_is_natural_person / descriptionPrevious value: -"Georgia only (44-7-36): the units are owned by a natural person (false: an LLC, corporation, partnership or trust owns them). The small-landlord exemption reaches only a natural person; not given, the statute is shown with the exemption as the alternative."New value: +"GA 44-7-36 only: true=natural-person owner; false=LLC/corporation/partnership/trust, which cannot claim small-landlord exemption. Omitted: exemption stays an alternative." - changed
Input schema / properties / pet_deposit_usd / descriptionPrevious value: -"The part of deposit_usd that is a pet deposit (outside the cap in Missouri, Alabama, North Dakota and Saint Paul; allowed on top of it up to one month in Hawaii and Alaska, half a month in Kansas, a quarter in Nebraska)."New value: +"Pet portion of deposit_usd: outside caps in MO/AL/ND/Saint Paul; extra cap allowance of 1 month in HI/AK, half in KS, quarter in NE." - changed
Input schema / properties / prepaid_rent_usd / descriptionPrevious value: -"Rent paid in advance beyond the first month, held besides deposit_usd. Counts toward the cap in AK, AZ, CA, CT, MD, MI and NY; earns interest in CT, MA (last month's rent), MD and Chicago; in Minneapolis it lowers the deposit cap to half a month. In UT its balance is returned with the deposit and counted in the refund (57-17-3(2)(b)): send only the unused part (rent already applied to a rental period is not a balance). Elsewhere the refund covers the deposit only and a warning says unused prepaid rent is owed back too."New value: +"Advance rent beyond first month, held besides deposit_usd. Counts in AK/AZ/CA/CT/MD/MI/NY caps; earns interest in CT/MA(last-month rent)/MD/Chicago; Minneapolis cap becomes half-month. UT: send only unused balance, added to refund (57-17-3(2)(b)); elsewhere refund is deposit-only with prepaid-return warning." - changed
Input schema / properties / rent_ordinance_covered / descriptionPrevious value: -"The unit is covered by the city's rent ordinance (Los Angeles RSO, Berkeley Rent Ordinance). Their deposit interest is owed only then; unknown: the amount is shown beside the refund, not in it."New value: +"Covered by LA RSO or Berkeley Rent Ordinance: required for their deposit interest. Unknown interest stays beside, not inside, refund." - changed
Input schema / properties / renter_notice_served_on / descriptionPrevious value: -"Utah only (YYYY-MM-DD): day the renter served the 57-17-3(3) notice after the deadline passed. The owner then has five business days to comply (57-17-3(5)); without the notice there is no relief under 57-17-5."New value: +"UT 57-17-3(3) renter notice served after deadline (YYYY-MM-DD). Owner gets 5 business days to comply (5); no notice means no 57-17-5 relief." - changed
Input schema / properties / returned / descriptionPrevious value: -"What the landlord has returned so far and when. With it, timeliness says whether the refund and the itemized statement were on time and how many days late."New value: +"Prior refund/statement and date; timeliness assesses each duty and days late." - changed
Input schema / properties / small_landlord / descriptionPrevious value: -"California AB 12 small landlord (a natural person or an LLC of natural persons owning at most two properties with at most four units; not for a service member): a two-month cap."New value: +"CA AB 12: natural person or LLC of natural persons, at most 2 properties containing at most 4 units total, tenant not a service member;2 month cap." - changed
Input schema / properties / statement_sent_on / descriptionPrevious value: -"Day you sent (or delivered) the itemized statement (YYYY-MM-DD). With it the statement is judged on time or late; documentation.itemized_statement alone cannot tell."New value: +"Itemized statement sent/delivered (YYYY-MM-DD), to assess timeliness; documentation.itemized_statement alone supplies no date." - changed
Input schema / properties / tenancy_ended_on / descriptionPrevious value: -"When the tenancy actually ended (YYYY-MM-DD): the lease's end, or an earlier termination or accepted surrender. Deadlines that run from the end of the tenancy use it. For a tenant who left before the lease was due to end, send the scheduled end as lease_end_on (older callers sent it here, which still works: the deadline is then counted from it, with the move-out date as an earlier alternative where the facts point to one)."New value: +"Actual tenancy end: lease end, early termination or accepted surrender (YYYY-MM-DD). End-of-tenancy deadlines use this; send a different scheduled end as lease_end_on. Legacy scheduled ends still work, with an earlier move-out alternative where applicable." - changed
Input schema / properties / tenancy_type / descriptionPrevious value: -"written_lease or at_will (Maine 6033(2): a written agreement's period, at most 30 days, or 21 days for a tenancy at will; Massachusetts 15B(4): at will, 30 days after the move-out, a written lease, 30 days after its end). Left out with a move-out before tenancy_ended_on: the earlier (at-will) date leads and the other is listed."New value: +"written_lease or at_will. ME 6033(2): written period<=30 days, at-will 21. MA 15 B(4):30 days from move-out(at-will) or lease end(written). Omitted when vacated_on precedes tenancy_ended_on: earlier at-will date leads; other date listed." - changed
Input schema / properties / tenant_abandoned / descriptionPrevious value: -"The tenant abandoned the unit or was evicted (Maryland 8-203(h): the clock runs from the tenant's written demand; Washington 59.18.280: from when the landlord learns of it; Louisiana 9:3251(C): the one-month rule does not apply). Left out: inferred from tenant_gave_proper_notice: false; with a move-out before tenancy_ended_on the earlier abandonment clock leads and the other date is listed."New value: +"Abandoned or evicted: MD 8-203(h) clock starts at written demand; WA 59.18.280 at landlord awareness; LA 9:3251(C) one-month rule excluded. Omitted: inferred from tenant_gave_proper_notice=false. If vacated_on precedes tenancy_ended_on, earlier abandonment clock leads; other date listed." - changed
Input schema / properties / tenant_age_60_plus / descriptionPrevious value: -"A person 60 or older occupies the unit (New Hampshire 540-A:5, I: the owner-occupied exemption does not reach the unit). tenant_age_62_plus true implies it."New value: +"An occupant is 60+ (NH 540-A:5,I: owner-occupied exemption excluded). tenant_age_62_plus=true implies this." - changed
Input schema / properties / tenant_gave_forwarding_address / descriptionPrevious value: -"False when the tenant never gave a forwarding address in writing (not just 'not yet known'). Illinois, Pennsylvania, Ohio, Delaware, South Carolina and New Hampshire then relieve the landlord of the penalty. Implied true by forwarding_address_received_on."New value: +"False: no written forwarding address ever given. May relieve penalties in IL/PA/OH/SC/NH; DE also accepts a lease notice address. forwarding_address_received_on implies true." - added
Output schema / $defs / Outcome / properties / obligation_modeAdded value: +{ + "default": "all", + "enum": [ + "all", + "alternative" + ], + "type": "string" +} - added
Output schema / $defs / PenaltyExposure / properties / not_applicable_reasonAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +}
4 tool updates
- Changed
deposit_settlement_rules18 fields changed- added
Output schema / $defs / BrokenLeaseAdded value: +{ + "additionalProperties": false, + "properties": { + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "quote": { + "maxLength": 600, + "type": "string" + }, + "requires_notice": { + "type": "boolean" + }, + "section": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "required": [ + "requires_notice", + "section", + "quote", + "source" + ], + "type": "object" +} - added
Output schema / $defs / CapLimitsAdded value: +{ + "additionalProperties": false, + "properties": { + "furnished_months": { + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "months_rent": { + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "type": "object" +} - added
Output schema / $defs / DepositCap / properties / cap_limitsAdded value: +{ + "anyOf": [ + { + "items": { + "additionalProperties": false, + "properties": { + "amendment": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "from": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "governed_by": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "source": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "until": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "value": { + "$ref": "#/$defs/CapLimits" + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "type": "array" + }, + { + "$ref": "#/$defs/CapLimits" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Forfeiture / properties / keeps_claim_forAdded value: +{ + "default": "all", + "enum": [ + "all", + "damage" + ], + "type": "string" +} - added
Output schema / $defs / Forfeiture / properties / keeps_claim_sectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Forfeiture / properties / no_address_noteAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Forfeiture / properties / no_address_reliefAdded value: +{ + "anyOf": [ + { + "enum": [ + "unsettled", + "stands" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Forfeiture / properties / notice_reliefAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/NoticeRelief" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / NoticeReliefAdded value: +{ + "additionalProperties": false, + "properties": { + "agreement": { + "type": "string" + }, + "lease": { + "type": "string" + }, + "reach": { + "type": "string" + }, + "relief": { + "type": "string" + }, + "section": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "required": [ + "section", + "source", + "agreement", + "lease", + "reach", + "relief" + ], + "type": "object" +} - added
Output schema / $defs / PenaltyRule / properties / earlier_sectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / PenaltyRule / properties / sourceAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Receipts / properties / enclosed_noteAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Receipts / properties / own_work_noteAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / ReturnRule / properties / broken_leaseAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/BrokenLease" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / ReturnRule / properties / unsettled_startAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/UnsettledStart" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / SafeHarbor / properties / address_dueAdded value: +{ + "anyOf": [ + { + "enum": [ + "by_termination", + "upon_termination" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / SafeHarbor / properties / address_due_quoteAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / UnsettledStartAdded value: +{ + "additionalProperties": false, + "properties": { + "event": { + "enum": [ + "vacate", + "termination", + "later_of_vacate_and_termination", + "forwarding_address", + "demand", + "later_of_termination_and_address", + "latest_of_termination_possession_and_address", + "earlier_of_termination_and_surrender", + "surrender_or_termination_first", + "new_tenant_occupancy", + "termination_possession_and_demand", + "claim_notice" + ], + "type": "string" + }, + "later_text_note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "later_text_on": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "quote": { + "maxLength": 600, + "type": "string" + }, + "section": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "required": [ + "event", + "section", + "quote", + "source" + ], + "type": "object" +}
- Changed
deposit_settlement_settle1 field changed- added
Output schema / $defs / ForfeitureCheck / properties / court_rule_due_byAdded value: +{ + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +}
- Changed
property_turnover_quick_estimate1 field changed- added
Input schema / properties / petsAdded value: +{ + "description": "Did pets live in the unit? true adds an optional flea treatment.", + "type": "boolean" +}
- Changed
property_turnover_scope1 field changed- added
Input schema / $defs / PropertyProfile / properties / petsAdded value: +{ + "description": "Did pets live in the unit? true adds an optional flea treatment. Omit if unknown.", + "type": "boolean" +}
1 tool update
- Changed
deposit_settlement_rules8 fields changed- added
Output schema / $defs / LateFeeRule / properties / over_cap_penaltiesAdded value: +{ + "default": [], + "items": { + "$ref": "#/$defs/OverCapPenalty" + }, + "type": "array" +} - added
Output schema / $defs / LateFeeRule / properties / percent_ofAdded value: +{ + "default": "rent", + "enum": [ + "rent", + "past_due_payment" + ], + "type": "string" +} - added
Output schema / $defs / LateFeeRule / properties / preconditionsAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / LateFeeRule / properties / preconditions_noteAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / LateFeeRule / properties / preconditions_sectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / OverCapPenaltyAdded value: +{ + "additionalProperties": false, + "properties": { + "applies_if": { + "type": "string" + }, + "conditional": { + "default": false, + "type": "boolean" + }, + "damages": { + "default": false, + "type": "boolean" + }, + "fees": { + "default": false, + "type": "boolean" + }, + "fixed_usd": { + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + } + ] + }, + "minimum_usd": { + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "quote": { + "maxLength": 600, + "type": "string" + }, + "section": { + "type": "string" + } + }, + "required": [ + "section", + "quote", + "fixed_usd", + "applies_if" + ], + "type": "object" +} - added
Output schema / $defs / ReturnRule / properties / unsettled_rolloverAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/UnsettledRollover" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / UnsettledRolloverAdded value: +{ + "additionalProperties": false, + "properties": { + "holidays": { + "default": [], + "items": { + "type": "string" + }, + "type": "array" + }, + "quote": { + "maxLength": 1200, + "type": "string" + }, + "section": { + "type": "string" + }, + "source": { + "type": "string" + }, + "start_rolls": { + "default": false, + "type": "boolean" + } + }, + "required": [ + "section", + "quote", + "source" + ], + "type": "object" +}
5 tool updates
- Changed
deposit_settlement_rules58 fields changed- added
Output schema / $defs / Alternative / properties / listed_warningAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / ContractDamages / properties / leadAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DeductionRules / properties / discovery_cutoffAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/DiscoveryCutoff" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DeductionRules / properties / lease_authorizedAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/LeaseAuthorized" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DeductionRules / properties / termination_notice_quoteAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DeductionRules / properties / termination_notice_sectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DepositCap / properties / advance_rent_exempt_monthsAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DepositCap / properties / or_demanded_beforeAdded value: +{ + "default": false, + "type": "boolean" +} - added
Output schema / $defs / DepositCap / properties / prepaid_noteAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DepositCap / properties / sectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DepositCap / properties / variant_dutyAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DepositCap / properties / variant_extra_monthsAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DeprecationAdded value: +{ + "properties": { + "field": { + "type": "string" + }, + "until": { + "format": "date", + "type": "string" + }, + "use": { + "type": "string" + } + }, + "required": [ + "field", + "until", + "use" + ], + "type": "object" +} - added
Output schema / $defs / DiscoveryCutoffAdded value: +{ + "additionalProperties": false, + "properties": { + "days_after_new_tenant": { + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "days_after_vacate": { + "exclusiveMinimum": 0, + "type": "integer" + }, + "quote": { + "maxLength": 600, + "type": "string" + }, + "section": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "required": [ + "days_after_vacate", + "section", + "quote", + "source" + ], + "type": "object" +} - added
Output schema / $defs / Forfeiture / properties / account_legAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Forfeiture / properties / cure_business_daysAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Forfeiture / properties / cure_sectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Forfeiture / properties / daysAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Forfeiture / properties / days_sectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Forfeiture / properties / doc_legsAdded value: +{ + "default": [], + "items": { + "enum": [ + "itemized_statement", + "move_in_condition_statement", + "move_out_list" + ], + "type": "string" + }, + "type": "array" +} - added
Output schema / $defs / Forfeiture / properties / excuse_noteAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Forfeiture / properties / excuse_sectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Forfeiture / properties / in_full_quoteAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Forfeiture / properties / late_condition_noteAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Forfeiture / properties / late_refund_noteAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Forfeiture / properties / nothing_withheld_noteAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Forfeiture / properties / rent_onlyAdded value: +{ + "anyOf": [ + { + "enum": [ + "exempt", + "undisputed" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Forfeiture / properties / rent_only_noteAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - changed
Output schema / $defs / Forfeiture / properties / trigger / enumPrevious value: -[ - "late_statement", - "late_return", - "late_statement_or_return", - "late_claim_notice", - "not_in_input" -]New value: +[ + "late_statement", + "late_return", + "late_statement_or_return", + "late_claim_notice", + "late_action_or_return", + "not_in_input", + "missing_documentation", + "receipts_after_estimate" +] - added
Output schema / $defs / InterestRule / properties / sectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Itemization / properties / sectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / LateFeeRule / properties / agreements_fromAdded value: +{ + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / LateFeeRule / properties / month_to_month_noteAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / LateFeeRule / properties / over_cap_remedyAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / LateFeeRule / properties / over_cap_remedy_conditionalAdded value: +{ + "default": false, + "type": "boolean" +} - added
Output schema / $defs / LateFeeRule / properties / over_cap_remedy_damagesAdded value: +{ + "default": false, + "type": "boolean" +} - added
Output schema / $defs / LateFeeRule / properties / over_cap_remedy_feesAdded value: +{ + "default": false, + "type": "boolean" +} - added
Output schema / $defs / LateFeeRule / properties / over_cap_remedy_ifAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / LateFeeRule / properties / over_cap_remedy_monthsAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / LateFeeRule / properties / over_cap_remedy_sectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / LateFeeRule / properties / over_cap_sectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / LateFeeRule / properties / over_cap_voidAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / LateFeeRule / properties / renewal_noteAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / LeaseAuthorizedAdded value: +{ + "additionalProperties": false, + "properties": { + "categories": { + "default": [], + "items": { + "enum": [ + "unpaid_rent", + "unpaid_utilities", + "cleaning", + "carpet", + "flooring", + "paint", + "blinds_window_coverings", + "appliance", + "fixture_or_hardware", + "wall_or_door_repair", + "key_or_lock", + "late_fees", + "lease_break_fee", + "moving_and_storage", + "reletting_costs", + "trash_and_abandoned_items", + "other_damage", + "other" + ], + "type": "string" + }, + "type": "array" + }, + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "quote": { + "maxLength": 600, + "type": "string" + }, + "replace": { + "default": false, + "type": "boolean" + }, + "section": { + "type": "string" + }, + "source": { + "type": "string" + }, + "verbatim": { + "default": true, + "type": "boolean" + } + }, + "required": [ + "section", + "quote", + "source" + ], + "type": "object" +} - changed
Output schema / $defs / PenaltyRule / properties / condition / enumPrevious value: -[ - "bad_faith", - "willful", - "any_late", - "late", - "any_violation", - "without_reasonable_basis", - "court_discretion", - "unpaid_annual_interest" -]New value: +[ + "bad_faith", + "willful", + "any_late", + "late", + "any_violation", + "without_reasonable_basis", + "court_discretion", + "unpaid_annual_interest", + "after_tenant_notice", + "absence_of_good_faith", + "no_account_and_no_listing", + "late_claim_notice", + "late_action_or_return" +] - added
Output schema / $defs / PenaltyRule / properties / earlier_noteAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / PenaltyRule / properties / fees_only_without_multipleAdded value: +{ + "default": false, + "type": "boolean" +} - added
Output schema / $defs / PenaltyRule / properties / low_on_meritsAdded value: +{ + "default": false, + "type": "boolean" +} - added
Output schema / $defs / PenaltyRule / properties / note_fromAdded value: +{ + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / PenaltyRule / properties / sectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Photos / properties / effective_byAdded value: +{ + "default": "move_out", + "enum": [ + "move_out", + "notice" + ], + "type": "string" +} - added
Output schema / $defs / Photos / properties / missing_fromAdded value: +{ + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Photos / properties / sectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Receipts / properties / estimate_daysAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Receipts / properties / missing_fromAdded value: +{ + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Receipts / properties / sectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / ReturnRule / properties / prepaid_rent_returnedAdded value: +{ + "default": false, + "type": "boolean" +} - added
Output schema / properties / deprecationAdded value: +{ + "anyOf": [ + { + "items": { + "$ref": "#/$defs/Deprecation" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null +}
- Changed
deposit_settlement_settle10 fields changed- added
Input schema / properties / countyAdded value: +{ + "description": "Tennessee only: the county the unit is in (the landlord-tenant act applies only in counties over 75,000 by the 2010 census, 66-28-102(a)). Taken from the city when it lies in one county.", + "maxLength": 60, + "type": "string" +} - added
Input schema / properties / deposit_in_separate_accountAdded value: +{ + "description": "Tennessee only (66-28-301(a)): the deposit was kept in a separate account used only for deposits. No account and no damage listing means none of it can be kept (66-28-301(c)).", + "type": "boolean" +} - added
Input schema / properties / landlord_filed_action_onAdded value: +{ + "description": "Michigan only (YYYY-MM-DD): day the landlord sued for the damages claimed (554.613: sue or return the balance within 45 days). Not given: no suit assumed.", + "format": "date", + "type": "string" +} - added
Input schema / properties / owner_is_natural_personAdded value: +{ + "description": "Georgia only (44-7-36): the units are owned by a natural person (false: an LLC, corporation, partnership or trust owns them). The small-landlord exemption reaches only a natural person; not given, the statute is shown with the exemption as the alternative.", + "type": "boolean" +} - changed
Input schema / properties / prepaid_rent_usd / descriptionPrevious value: -"Rent paid in advance beyond the first month, held besides deposit_usd. Counts toward the cap in AK, AZ, CA, CT, MD, MI and NY; earns interest in CT, MA (last month's rent), MD and Chicago; in Minneapolis it lowers the deposit cap to half a month."New value: +"Rent paid in advance beyond the first month, held besides deposit_usd. Counts toward the cap in AK, AZ, CA, CT, MD, MI and NY; earns interest in CT, MA (last month's rent), MD and Chicago; in Minneapolis it lowers the deposit cap to half a month. In UT its balance is returned with the deposit and counted in the refund (57-17-3(2)(b)): send only the unused part (rent already applied to a rental period is not a balance). Elsewhere the refund covers the deposit only and a warning says unused prepaid rent is owed back too." - added
Input schema / properties / renter_notice_served_onAdded value: +{ + "description": "Utah only (YYYY-MM-DD): day the renter served the 57-17-3(3) notice after the deadline passed. The owner then has five business days to comply (57-17-3(5)); without the notice there is no relief under 57-17-5.", + "format": "date", + "type": "string" +} - added
Output schema / $defs / DeprecationAdded value: +{ + "properties": { + "field": { + "type": "string" + }, + "until": { + "format": "date", + "type": "string" + }, + "use": { + "type": "string" + } + }, + "required": [ + "field", + "until", + "use" + ], + "type": "object" +} - changed
Output schema / $defs / DocumentationDuty / properties / met / enumPrevious value: -[ - "yes", - "no", - "unknown" -]New value: +[ + "yes", + "no", + "unknown", + "not_yet_due" +] - added
Output schema / $defs / PenaltyExposure / properties / fees_only_without_multipleAdded value: +{ + "default": false, + "type": "boolean" +} - added
Output schema / properties / deprecationAdded value: +{ + "anyOf": [ + { + "items": { + "$ref": "#/$defs/Deprecation" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null +}
- Changed
property_turnover_issue_codes24 fields changed- changed
Input schema / properties / area / descriptionPrevious value: -"Optional taxonomy area filter, e.g. 'flooring' or 'walls' (not a room). Call with no arguments to list every area in `areas`."New value: +"Older name for group; use group." - added
Input schema / properties / area / maxLengthAdded value: +40 - added
Input schema / properties / groupAdded value: +{ + "description": "Only codes in this group, e.g. 'flooring' or 'walls' (a part of the unit, not a room). `groups` in the answer lists them all.", + "maxLength": 40, + "type": "string" +} - changed
Input schema / properties / include_aliases / descriptionPrevious value: -"Also return each code's aliases (larger result)."New value: +"Also return aliases in the short list (search hits always carry them)." - removed
Input schema / properties / limit / defaultRemoved value: -8 - changed
Input schema / properties / limit / descriptionPrevious value: -"Most codes to return."New value: +"Most codes to return. Default: 8 with q, every code without." - changed
Input schema / properties / limit / maximumPrevious value: -200New value: +500 - added
Input schema / properties / qAdded value: +{ + "description": "Words to search for in the codes, names, aliases, descriptions and examples, e.g. 'pet stain carpet'. Hits come back with full detail. Leave out to list every code in short form.", + "maxLength": 200, + "type": "string" +} - changed
Input schema / properties / query / descriptionPrevious value: -"Keywords to match against codes, names and aliases, e.g. 'pet stain carpet'."New value: +"Older name for q; use q." - added
Output schema / $defs / DeprecationAdded value: +{ + "properties": { + "field": { + "type": "string" + }, + "until": { + "format": "date", + "type": "string" + }, + "use": { + "type": "string" + } + }, + "required": [ + "field", + "until", + "use" + ], + "type": "object" +} - removed
Output schema / $defs / IssueCode / properties / aliases / defaultRemoved value: -[] - removed
Output schema / $defs / IssueCode / properties / areaRemoved value: -{ - "type": "string" -} - added
Output schema / $defs / IssueCode / properties / default_extentAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / IssueCode / properties / descriptionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / IssueCode / properties / examplesAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / $defs / IssueCode / properties / groupAdded value: +{ + "type": "string" +} - added
Output schema / $defs / IssueCode / properties / not_whenAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / IssueCode / properties / refer_outAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / IssueCode / properties / roomsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - changed
Output schema / $defs / IssueCode / requiredPrevious value: -[ - "code", - "name", - "area" -]New value: +[ + "code", + "name", + "group" +] - added
Output schema / $defs / IssueCodesResult / properties / groupsAdded value: +{ + "items": { + "type": "string" + }, + "type": "array" +} - added
Output schema / $defs / IssueCodesResult / properties / manual_quote_codeAdded value: +{ + "default": "general.manual_quote", + "type": "string" +} - added
Output schema / $defs / IssueCodesResult / properties / noteAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / properties / deprecationAdded value: +{ + "anyOf": [ + { + "items": { + "$ref": "#/$defs/Deprecation" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null +}
- Changed
property_turnover_quick_estimate6 fields changed- changed
Input schema / properties / issues / descriptionPrevious value: -"What was found in plain English, e.g. ['stained carpet in both bedrooms', 'nail holes everywhere', 'oven is filthy']. Read like pasted notes: an entry may hold several conditions ('carpet stained, nail holes'; one finding each); a room before or after the condition sets the location ('Bedroom 2 carpet torn', 'mold in bathroom'); a written count sets the quantity ('3 blinds broken'); an entry saying there is no work ('no mold', 'leak fixed by tenant') is reported as not billed."New value: +"What was found in plain English, e.g. ['stained carpet in both bedrooms', 'nail holes everywhere', 'oven is filthy']. Read like pasted notes: an entry may hold several conditions ('carpet stained, nail holes'; one finding each); a room before or after the condition sets the location ('Bedroom 2 carpet torn', 'mold in bathroom'); a written count sets the quantity ('3 blinds broken'); an entry saying there is no work ('no mold', 'leak fixed by tenant') is reported as not billed. All the issues together may hold up to 12,000 characters; send longer notes in more than one request." - added
Input schema / properties / walk_dateAdded value: +{ + "description": "The walk-through date; dated or aged items are judged against it. Omit if unknown.", + "format": "date", + "type": "string" +} - added
Output schema / $defs / DeprecationAdded value: +{ + "properties": { + "field": { + "type": "string" + }, + "until": { + "format": "date", + "type": "string" + }, + "use": { + "type": "string" + } + }, + "required": [ + "field", + "until", + "use" + ], + "type": "object" +} - added
Output schema / $defs / Provenance / properties / rules_as_ofAdded value: +{ + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / SourceRef / properties / accessedAdded value: +{ + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / properties / deprecationAdded value: +{ + "anyOf": [ + { + "items": { + "$ref": "#/$defs/Deprecation" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null +}
- Changed
property_turnover_scope58 fields changed- added
Input schema / $defs / EvidenceAdded value: +{ + "additionalProperties": false, + "description": "A negative or working result clears: inspector any hazard; lab mold, lead, asbestos, drugs, sewage; meter moisture; self_test or checklist a device.", + "properties": { + "kind": { + "$ref": "#/$defs/EvidenceKind", + "type": "string" + }, + "material": { + "description": "What was tested, e.g. 'kitchen floor tile'.", + "maxLength": 80, + "type": "string" + }, + "result": { + "$ref": "#/$defs/EvidenceResult", + "type": "string" + } + }, + "required": [ + "kind", + "result" + ], + "type": "object" +} - added
Input schema / $defs / EvidenceKindAdded value: +{ + "enum": [ + "self_test", + "lab", + "meter", + "checklist", + "inspector" + ], + "type": "string" +} - added
Input schema / $defs / EvidenceResultAdded value: +{ + "enum": [ + "negative", + "positive", + "working", + "failed" + ], + "type": "string" +} - changed
Input schema / $defs / Extraction / descriptionPrevious value: -"How a finding was produced, when software read it from free text (contract 0.4.0) or\nfrom an uploaded document (``ai_document`` and ``page``, additive).\n\nSet by the web tool when its AI reader (Azure OpenAI) turned a person's own words, or a page\nof their inspection report, into this finding. The engine reports such a finding as\n``resolution: \"ai\"`` with ``needs_review`` and flags its lines; it never changes how the\nfinding is priced."New value: +"How our AI reader read a finding; never changes the price." - added
Input schema / $defs / Extraction / properties / cellAdded value: +{ + "description": "ai_document: the cell read; move_in bills nothing, a hazard there is Possible.", + "enum": [ + "move_out", + "move_in", + "comment" + ], + "type": "string" +} - changed
Input schema / $defs / Extraction / properties / confidence / descriptionPrevious value: -"The reader's confidence, 0 to 1."New value: +"0 to 1." - changed
Input schema / $defs / Extraction / properties / method / descriptionPrevious value: -"'ai': read by a language model from free text. 'ai_document': read by a language model from a page of an uploaded document."New value: +"ai: free text; ai_document: an upload's page." - changed
Input schema / $defs / Extraction / properties / model / descriptionPrevious value: -"The model that read it, e.g. 'gpt-5-nano 2025-08-07'."New value: +"The model that read it." - changed
Input schema / $defs / Extraction / properties / page / descriptionPrevious value: -"'ai_document' only: the page of the upload it was read from (1-based)."New value: +"ai_document: the page read." - added
Input schema / $defs / Extraction / properties / prompt_versionAdded value: +{ + "description": "The reader's prompt version.", + "maxLength": 40, + "pattern": "^[A-Za-z0-9._:-]+$", + "type": "string" +} - changed
Input schema / $defs / Extraction / properties / quote / descriptionPrevious value: -"'ai_document' only: the row's words as printed on that page, contact details masked. Evidence for checking the finding; it never changes the price."New value: +"ai_document: the row's words, contacts masked." - changed
Input schema / $defs / Extraction / properties / review / descriptionPrevious value: -"'ai_document' only: the person's review before estimating (confirmed, accepted or edited). Leave out when the finding was not checked; it then needs review."New value: +"ai_document: the person's review." - changed
Input schema / $defs / ExtractionReview / descriptionPrevious value: -"What the person did with a finding the web tool read from an uploaded document, before\nestimating (contract 0.11.0, additive). ``confirmed``: they pressed \"Looks right\";\n``accepted``: left as read, on a row the page did not flag; ``edited``: they changed it\n(``changed`` names what). A reviewed finding keeps its ``extraction`` (where it came from)\nbut is no longer reported as needing review: the person has checked it."New value: +"A person's review of a finding read from a document." - changed
Input schema / $defs / ExtractionReview / properties / changed / descriptionPrevious value: -"'edited': the fields the person changed."New value: +"edited: the fields changed." - changed
Input schema / $defs / ExtractionReview / properties / flags / descriptionPrevious value: -"Why the page flagged it, if it did."New value: +"Why the page flagged it." - changed
Input schema / $defs / ExtractionReview / properties / flags / items / enumPrevious value: -[ - "low_confidence", - "medium_confidence", - "quote_not_on_page", - "count_unread", - "column_unclear", - "ok_unclear", - "unmatched", - "loose_match", - "ai_match" -]New value: +[ + "low_confidence", + "medium_confidence", + "quote_not_on_page", + "count_unread", + "column_unclear", + "ok_unclear", + "unmatched", + "ai_match" +] - changed
Input schema / $defs / ExtractionReview / properties / flags / maxItemsPrevious value: -9New value: +8 - changed
Input schema / $defs / Finding / descriptionPrevious value: -"One observed condition. Give a taxonomy `code` if you know it, else a `description`."New value: +"One observed condition, coded from the issue-code catalog." - added
Input schema / $defs / Finding / properties / area_sq_ftAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "maximum": 100000, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + } + ], + "description": "Measured area in sq ft; wins over a derived size." +} - changed
Input schema / $defs / Finding / properties / code / descriptionPrevious value: -"Optional. Only a code returned by property_turnover_issue_codes (e.g. 'walls.nail_holes'); otherwise leave it out and use description."New value: +"From property_turnover_issue_codes; general.manual_quote if none fits. Send it on every finding." - added
Input schema / $defs / Finding / properties / code / enumAdded value: +[ + "adhesive.residue", + "asbestos.suspect", + "bath.accessory_missing", + "bath.grab_bar_loose", + "bath.mildew_surface", + "blinds.bent_missing", + "blinds.dirty", + "cabinet.base_water_damage", + "cabinet.damage_widespread", + "cabinet.door_damaged", + "cabinet.hinge_loose", + "cabinet.surface_worn", + "carpet.burn", + "carpet.odor", + "carpet.pet_urine", + "carpet.replace_room", + "carpet.soiled", + "carpet.stained", + "carpet.torn_frayed", + "carpet.water_damaged", + "carpet.worn_matted", + "carpet.wrinkled", + "caulk.sink_counter", + "ceiling.hole", + "ceiling.nail_pops", + "ceiling.popcorn_damaged", + "ceiling.repaint", + "ceiling.sagging", + "ceiling.stain", + "ceiling_fan.broken", + "clean.general", + "clean.heavy_soil", + "clean.windows", + "closet.shelf_rod_missing", + "countertop.chip_burn", + "countertop.replace", + "countertop.substrate_exposed", + "dishwasher.inoperable", + "dishwasher.missing", + "disposal.inoperable", + "door.closet_off_track", + "door.entry_damaged", + "door.entry_sticks", + "door.fire_rated_defect", + "door.interior_hole", + "door.interior_replace", + "door.interior_sticks", + "door.slider_damaged", + "door.stop_missing", + "door.weatherstrip_missing", + "drain.blocked_slow", + "electrical.exposed_wiring", + "electrical.panel_issue", + "exhaust_fan.inoperable", + "exterior.paint_peeling", + "exterior.walkway_hazard", + "faucet.leak", + "fence.pool_gate_latch", + "fireplace.firebox_damaged", + "floor.soft_spot", + "floor.substrate_exposed", + "floor.trip_hazard", + "garage.cleanout", + "garage.door_inoperable", + "garage.safety_reverse", + "general.manual_quote", + "gfci.missing", + "gfci.test_fail", + "hardwood.water_stain", + "hardwood.worn", + "hvac.dryer_duct_unsafe", + "hvac.dryer_vent_lint", + "hvac.filter_dirty", + "hvac.minisplit_dirty", + "hvac.not_heating_cooling", + "hvac.vent_cover_missing", + "key.missing", + "laundry.hookup_leak", + "lead.paint_concern", + "leak.active_water", + "leak.moisture_elevated", + "leak.sewage", + "light.bulb_out", + "light.fixture_damaged", + "lock.deadbolt_broken", + "lock.knob_broken", + "lock.rekey", + "lock.smart_reset", + "lvp.plank_damaged", + "lvp.water_swollen", + "mailbox.lock_change", + "microwave.inoperable", + "microwave.otr_inoperable", + "mirror.damaged", + "mold.visible_large", + "mold.visible_medium", + "mold.visible_small", + "odor.general", + "outlet.burn_marks", + "outlet.dead", + "patio.dirty", + "pest.bedbugs", + "pest.inspection_turn", + "pest.other", + "pest.roaches", + "pest.rodents", + "range.anti_tip_missing", + "range.burner_inoperable", + "range.cooktop_glass_cracked", + "range.dirty", + "range.missing", + "range.oven_not_heating", + "range.parts_missing", + "range.replace", + "range_hood.filter", + "refrigerator.dirty", + "refrigerator.gasket", + "refrigerator.ice_maker", + "refrigerator.missing", + "refrigerator.not_cooling", + "refrigerator.parts_missing", + "remote.garage_missing", + "safety.biohazard", + "safety.co_alarm_inoperable", + "safety.co_alarm_missing", + "safety.combustible_clearance", + "safety.drug_contamination", + "safety.egress_blocked", + "safety.extinguisher_expired", + "safety.fire_damage", + "safety.gas_leak", + "safety.guardrail_stairs", + "safety.hazardous_material", + "safety.hvac_combustion", + "safety.pest_extensive", + "safety.roof_envelope", + "safety.sharp_edge", + "safety.smoke_alarm_expired", + "safety.smoke_alarm_missing", + "safety.structural_concern", + "shower.door_damaged", + "shower.head_leaks", + "shower.rod_missing", + "sink.chipped", + "sink.not_draining", + "switch.broken", + "switch_plate.missing", + "tenant_alteration.restore", + "thermostat.broken", + "tile.cracked", + "tile.grout_dirty", + "tile.grout_missing", + "toilet.clog", + "toilet.cracked", + "toilet.loose_base", + "toilet.running", + "toilet.seat_broken", + "trash.heavy", + "trash.light", + "trim.baseboard_damaged", + "trim.casing_damaged", + "trim.paint_worn", + "tub.caulk_failed", + "tub.chip_stain", + "tub.surround_damaged", + "unit.final_inspection", + "vanity.damaged", + "vct.dull_dirty", + "vinyl.lifting", + "vinyl.torn_gouged", + "walls.crack_hairline", + "walls.crack_structural", + "walls.hole_medium", + "walls.holes_many", + "walls.holes_multiple", + "walls.large_hole", + "walls.nail_holes", + "walls.paint_aged", + "walls.paint_peeling", + "walls.paint_unauthorized_color", + "walls.scuffs", + "walls.smoke_nicotine", + "walls.stain_other", + "walls.stain_water", + "walls.surface_detached", + "walls.texture_damage", + "walls.touchup", + "walls.wallpaper", + "washer_dryer.inoperable", + "water_heater.no_hot_water", + "window.glass_cracked", + "window.lock_broken", + "window.screen_missing", + "window.screen_torn", + "window.seal_failed", + "window.sill_damaged", + "window.stuck", + "yard.debris", + "yard.overgrown" +] - changed
Input schema / $defs / Finding / properties / confirmed / descriptionPrevious value: -"true: the person checked this AI-read finding (one with extraction) and it says what they meant. It keeps resolution 'ai' but no longer needs review, and the answer is verified once every AI-read finding is confirmed."New value: +"true: the person checked this AI-read finding." - changed
Input schema / $defs / Finding / properties / description / descriptionPrevious value: -"Plain description if no code, e.g. 'dog urine stains in bedroom carpet'."New value: +"Deprecated; send code, with the words in source_text." - added
Input schema / $defs / Finding / properties / evidenceAdded value: +{ + "$ref": "#/$defs/Evidence", + "description": "The test behind the finding; the only thing that clears a hazard.", + "type": "object" +} - changed
Input schema / $defs / Finding / properties / extent / descriptionPrevious value: -"spot | partial | full; defaults per issue."New value: +"Only when the words say how far; else the code's default." - changed
Input schema / $defs / Finding / properties / extraction / descriptionPrevious value: -"Set by Tektolo's AI reader on findings it read from free text or a document (reading.findings of an earlier answer); keep it when you send such a finding back. They come back as resolution 'ai' with needs_review unless confirmed."New value: +"Set by our AI reader; send it back unchanged." - changed
Input schema / $defs / Finding / properties / id / descriptionPrevious value: -"Your id for this finding; defaults to f1, f2, ... in order."New value: +"Your id; defaults to f1, f2, ... in order." - changed
Input schema / $defs / Finding / properties / location / descriptionPrevious value: -"Object {\"area\": \"bedroom\", \"label\": \"Bedroom 2\"}, or a plain string such as \"Bedroom 2\" or \"kitchen\" (mapped to an area; other text becomes the label)."New value: +"{\"area\": \"bedroom\", \"label\": \"Bedroom 2\"} or \"Bedroom 2\"; older form of rooms." - added
Input schema / $defs / Finding / properties / materialAdded value: +{ + "description": "The material as written, e.g. '9x9 vinyl tile'.", + "maxLength": 80, + "type": "string" +} - added
Input schema / $defs / Finding / properties / notes / descriptionAdded value: +"More words; never billed or coded from." - changed
Input schema / $defs / Finding / properties / quantity / descriptionPrevious value: -"Measured amount, e.g. 120 sq_ft. Derived when omitted."New value: +"Measured amount (120 sq_ft), only as the words give it." - added
Input schema / $defs / Finding / properties / repeat_ofAdded value: +{ + "description": "Id of an earlier finding this repeats in its own rooms (\"same as above\"); it bills.", + "maxLength": 40, + "pattern": "^[A-Za-z0-9_.:-]+$", + "type": "string" +} - added
Input schema / $defs / Finding / properties / roomsAdded value: +{ + "$ref": "#/$defs/Rooms", + "description": "Which rooms: {\"area\": \"bedroom\", \"count\": 3} is all 3 bedrooms; labels name them.", + "type": "object" +} - changed
Input schema / $defs / Finding / properties / signature_like / descriptionPrevious value: -"Set by Tektolo's notes reader (reading.findings, the web tool's rows): the words came right after a sign-off and read like a name or signature ('Thanks!' / 'Rotten Egg Smell'), kept only because they name a safety item. A safety item in them is raised unconfirmed (check first). Keep it when you send such a finding back, so every way of sending the same words gives the same answer."New value: +"Set by our reader; send it back unchanged." - added
Input schema / $defs / Finding / properties / source_textAdded value: +{ + "description": "The original words. Scanned for hazards; never billed or coded from.", + "maxLength": 1000, + "type": "string" +} - added
Input schema / $defs / Finding / properties / statusAdded value: +{ + "$ref": "#/$defs/FindingStatus", + "default": "needed", + "description": "Only needed (the default) bills; on a hazard, done/ok/none without evidence stays Possible.", + "type": "string" +} - added
Input schema / $defs / Finding / properties / year_statementAdded value: +{ + "$ref": "#/$defs/YearStatement", + "description": "A year said in passing (\"built 1972\"); never sets property.year_built.", + "type": "object" +} - added
Input schema / $defs / FindingStatusAdded value: +{ + "enum": [ + "needed", + "done", + "ok", + "none" + ], + "type": "string" +} - changed
Input schema / $defs / FloorCoverings / properties / carpet_present / descriptionPrevious value: -"Is there wall-to-wall carpet? Omit if unknown: carpet findings then imply carpet; with no carpet findings, whole-unit carpet cleaning is left out and listed as unknown."New value: +"Is there wall-to-wall carpet? Omit if unknown." - changed
Input schema / $defs / FloorCoverings / properties / carpet_sq_ft / descriptionPrevious value: -"Carpeted floor area. Omit to assume 60% of the unit floor area."New value: +"Carpeted area; omit to assume 60% of the floor area." - changed
Input schema / $defs / Location / descriptionPrevious value: -"Where the finding is. Also accepted as a plain string (\"Bedroom 2\", \"kitchen\")."New value: +"Where; a plain string works too." - added
Input schema / $defs / OccupantsAdded value: +{ + "additionalProperties": false, + "description": "property.occupants: lead-rule facts about the unit; leave out what is unknown.", + "properties": { + "child_under_6": { + "description": "A child under 6 lives there or is expected to.", + "type": "boolean" + }, + "elderly": { + "description": "Housing for the elderly (62+) or disabled; not just an older tenant.", + "type": "boolean" + }, + "hud_assisted": { + "type": "boolean" + } + }, + "type": "object" +} - added
Input schema / $defs / PropertyProfile / properties / occupantsAdded value: +{ + "$ref": "#/$defs/Occupants", + "type": "object" +} - added
Input schema / $defs / PropertyProfile / properties / walk_dateAdded value: +{ + "description": "The walk-through date; dated or aged items are judged against it. Omit if unknown.", + "format": "date", + "type": "string" +} - changed
Input schema / $defs / RateCardEntry / descriptionPrevious value: -"Your own price. Examples: {\"trade\": \"handyman\", \"unit_price\": 65, \"uom\": \"hour\"} (an\nhourly labor rate for that trade); {\"trade\": \"painter\", \"min_charge\": 150} (visit minimum);\n{\"task_id\": \"carpet.clean\", \"unit_price\": 0.2, \"uom\": \"sq_ft\"} (task_id from a result line).\nA task_id entry beats a trade entry; both beat the library. The result lists what was\napplied and what was ignored (rate_card_applied / rate_card_ignored)."New value: +"Your price for a task_id (from a result line) or a trade, e.g. {\"trade\": \"handyman\", \"unit_price\": 65, \"uom\": \"hour\"}." - changed
Input schema / $defs / RateCardEntry / properties / unit_price / descriptionPrevious value: -"USD per uom. On a trade entry, uom 'hour' is an hourly labor rate (replaces the labor part of that trade's prices); another uom prices that trade's tasks in it."New value: +"USD per uom; on a trade entry, uom 'hour' is its labor rate." - changed
Input schema / $defs / RateCardEntry / properties / uom / descriptionPrevious value: -"Unit your price is quoted in. Required with a trade unit_price. If it differs from a task's uom, the entry is not applied to that task (see rate_card_ignored)."New value: +"Required with a trade unit_price; a task in another uom ignores it." - added
Input schema / $defs / RoomsAdded value: +{ + "additionalProperties": false, + "description": "Which rooms a finding covers.", + "properties": { + "area": { + "$ref": "#/$defs/Area", + "default": "whole_unit", + "description": "Left out, from the labels, else the whole unit.", + "type": "string" + }, + "count": { + "default": 1, + "description": "At least the number of labels; capped at the unit's count.", + "maximum": 50, + "minimum": 1, + "type": "integer" + }, + "labels": { + "description": "The rooms' names as written, e.g. ['Bedroom 2'].", + "items": { + "type": "string" + }, + "maxItems": 12, + "type": "array" + } + }, + "type": "object" +} - added
Input schema / $defs / YearStatementAdded value: +{ + "additionalProperties": false, + "description": "When the words say it was built.", + "properties": { + "text": { + "description": "The words, e.g. 'built in 1972'.", + "maxLength": 200, + "minLength": 1, + "type": "string" + }, + "year": { + "description": "Left out when the words name none ('Victorian').", + "maximum": 2100, + "minimum": 1700, + "type": "integer" + } + }, + "required": [ + "text" + ], + "type": "object" +} - changed
Input schema / examplesPrevious value: -[ - { - "findings": [ - { - "description": "pet urine in carpet", - "location": "Bedroom 2" - }, - { - "description": "3 blinds broken", - "quantity": { - "uom": "each", - "value": 3 - } - } - ], - "property": { - "bathrooms": 1, - "bedrooms": 2, - "zip": "43215" - } - } -]New value: +[ + { + "findings": [ + { + "code": "carpet.pet_urine", + "rooms": "Bedroom 2", + "source_text": "pet urine in BR2 carpet" + }, + { + "code": "blinds.bent_missing", + "quantity": { + "uom": "each", + "value": 3 + } + } + ], + "property": { + "bathrooms": 1, + "bedrooms": 2, + "zip": "43215" + } + } +] - changed
Input schema / properties / detail / descriptionPrevious value: -"summary: totals, trade scopes, every line tied to a finding (capped at 40) plus the largest must-fix/refer-out lines, a one-line note on the routine lines left out, notes, and only findings needing attention (small). full: every line, finding and source."New value: +"summary (small): totals, trade scopes, lines tied to findings. full: all." - changed
Input schema / properties / findings / descriptionPrevious value: -"Move-out inspection findings, one per condition, with location and extent."New value: +"Move-out inspection findings, one per observed condition, coded." - changed
Input schema / properties / read / descriptionPrevious value: -"parser (default): descriptions are read by the deterministic parser and matcher only; what they cannot place comes back as a manual-quote line with suggested codes. ai: what the parser cannot place is then read by an AI model; the answer is a draft (review.status) and echoes the reading, whose findings you confirm and send back for a verified answer (contract 0.12.0)."New value: +"Deprecated and ignored: scope reads no free text." - changed
Input schema / properties / retain / descriptionPrevious value: -"Optional (contract 0.5.0). false: keep none of this request's text. By default the finding descriptions are kept with contact details and access codes removed, to improve matching; the estimate is the same either way."New value: +"false: keep none of this request's text." - added
Output schema / $defs / DeprecationAdded value: +{ + "properties": { + "field": { + "type": "string" + }, + "until": { + "format": "date", + "type": "string" + }, + "use": { + "type": "string" + } + }, + "required": [ + "field", + "until", + "use" + ], + "type": "object" +} - added
Output schema / $defs / Provenance / properties / rules_as_ofAdded value: +{ + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / SourceRef / properties / accessedAdded value: +{ + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / properties / deprecationAdded value: +{ + "anyOf": [ + { + "items": { + "$ref": "#/$defs/Deprecation" + }, + "type": "array" + }, + { + "type": "null" + } + ], + "default": null +}
5 tool updates
- Changed
deposit_settlement_rules7 fields changed- added
Output schema / $defs / ReadingAdded value: +{ + "properties": { + "counts": { + "$ref": "#/$defs/ReadingCounts" + }, + "findings": { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + "id": { + "type": "string" + }, + "kind": { + "enum": [ + "notes", + "document" + ], + "type": "string" + }, + "model": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "notes": { + "items": { + "$ref": "#/$defs/ReadingNote" + }, + "type": "array" + }, + "prompt_version": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "id", + "kind", + "counts", + "findings" + ], + "type": "object" +} - added
Output schema / $defs / ReadingCountsAdded value: +{ + "properties": { + "ai": { + "type": "integer" + }, + "parser": { + "type": "integer" + }, + "total": { + "type": "integer" + }, + "unmatched": { + "type": "integer" + } + }, + "required": [ + "total", + "ai", + "parser", + "unmatched" + ], + "type": "object" +} - added
Output schema / $defs / ReadingNoteAdded value: +{ + "properties": { + "code": { + "type": "string" + }, + "finding_ids": { + "default": [], + "items": { + "type": "string" + }, + "type": "array" + }, + "kind": { + "enum": [ + "warning", + "assumption" + ], + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "kind", + "code", + "message" + ], + "type": "object" +} - added
Output schema / $defs / ReviewAdded value: +{ + "properties": { + "ai_read": { + "default": 0, + "type": "integer" + }, + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "reading_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "status": { + "default": "verified", + "enum": [ + "draft", + "verified" + ], + "type": "string" + } + }, + "type": "object" +} - added
Output schema / properties / readingAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/Reading" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / properties / request_hashAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / properties / reviewAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/Review" + }, + { + "type": "null" + } + ], + "default": null +}
- Changed
deposit_settlement_settle7 fields changed- added
Output schema / $defs / ReadingAdded value: +{ + "properties": { + "counts": { + "$ref": "#/$defs/ReadingCounts" + }, + "findings": { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + "id": { + "type": "string" + }, + "kind": { + "enum": [ + "notes", + "document" + ], + "type": "string" + }, + "model": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "notes": { + "items": { + "$ref": "#/$defs/ReadingNote" + }, + "type": "array" + }, + "prompt_version": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "id", + "kind", + "counts", + "findings" + ], + "type": "object" +} - added
Output schema / $defs / ReadingCountsAdded value: +{ + "properties": { + "ai": { + "type": "integer" + }, + "parser": { + "type": "integer" + }, + "total": { + "type": "integer" + }, + "unmatched": { + "type": "integer" + } + }, + "required": [ + "total", + "ai", + "parser", + "unmatched" + ], + "type": "object" +} - added
Output schema / $defs / ReadingNoteAdded value: +{ + "properties": { + "code": { + "type": "string" + }, + "finding_ids": { + "default": [], + "items": { + "type": "string" + }, + "type": "array" + }, + "kind": { + "enum": [ + "warning", + "assumption" + ], + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "kind", + "code", + "message" + ], + "type": "object" +} - added
Output schema / $defs / ReviewAdded value: +{ + "properties": { + "ai_read": { + "default": 0, + "type": "integer" + }, + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "reading_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "status": { + "default": "verified", + "enum": [ + "draft", + "verified" + ], + "type": "string" + } + }, + "type": "object" +} - added
Output schema / properties / readingAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/Reading" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / properties / request_hashAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / properties / reviewAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/Review" + }, + { + "type": "null" + } + ], + "default": null +}
- Changed
property_turnover_issue_codes7 fields changed- added
Output schema / $defs / ReadingAdded value: +{ + "properties": { + "counts": { + "$ref": "#/$defs/ReadingCounts" + }, + "findings": { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + "id": { + "type": "string" + }, + "kind": { + "enum": [ + "notes", + "document" + ], + "type": "string" + }, + "model": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "notes": { + "items": { + "$ref": "#/$defs/ReadingNote" + }, + "type": "array" + }, + "prompt_version": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "id", + "kind", + "counts", + "findings" + ], + "type": "object" +} - added
Output schema / $defs / ReadingCountsAdded value: +{ + "properties": { + "ai": { + "type": "integer" + }, + "parser": { + "type": "integer" + }, + "total": { + "type": "integer" + }, + "unmatched": { + "type": "integer" + } + }, + "required": [ + "total", + "ai", + "parser", + "unmatched" + ], + "type": "object" +} - added
Output schema / $defs / ReadingNoteAdded value: +{ + "properties": { + "code": { + "type": "string" + }, + "finding_ids": { + "default": [], + "items": { + "type": "string" + }, + "type": "array" + }, + "kind": { + "enum": [ + "warning", + "assumption" + ], + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "kind", + "code", + "message" + ], + "type": "object" +} - added
Output schema / $defs / ReviewAdded value: +{ + "properties": { + "ai_read": { + "default": 0, + "type": "integer" + }, + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "reading_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "status": { + "default": "verified", + "enum": [ + "draft", + "verified" + ], + "type": "string" + } + }, + "type": "object" +} - added
Output schema / properties / readingAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/Reading" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / properties / request_hashAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / properties / reviewAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/Review" + }, + { + "type": "null" + } + ], + "default": null +}
- Changed
property_turnover_quick_estimate10 fields changed- added
Input schema / properties / retainAdded value: +{ + "default": true, + "description": "Optional (contract 0.5.1). false: keep none of this request's text, so the AI reader's answer for the issues is not stored either. By default the text is kept with contact details and access codes removed, to improve matching; the estimate is the same either way.", + "type": "boolean" +} - added
Output schema / $defs / FindingResolution / properties / confirmedAdded value: +{ + "default": false, + "type": "boolean" +} - changed
Output schema / $defs / FindingResolution / properties / not_billed_reason / anyOfPrevious value: -[ - { - "enum": [ - "none", - "ok", - "done" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "none", + "ok", + "done", + "no_condition" + ], + "type": "string" + }, + { + "type": "null" + } +] - added
Output schema / $defs / ReadingAdded value: +{ + "properties": { + "counts": { + "$ref": "#/$defs/ReadingCounts" + }, + "findings": { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + "id": { + "type": "string" + }, + "kind": { + "enum": [ + "notes", + "document" + ], + "type": "string" + }, + "model": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "notes": { + "items": { + "$ref": "#/$defs/ReadingNote" + }, + "type": "array" + }, + "prompt_version": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "id", + "kind", + "counts", + "findings" + ], + "type": "object" +} - added
Output schema / $defs / ReadingCountsAdded value: +{ + "properties": { + "ai": { + "type": "integer" + }, + "parser": { + "type": "integer" + }, + "total": { + "type": "integer" + }, + "unmatched": { + "type": "integer" + } + }, + "required": [ + "total", + "ai", + "parser", + "unmatched" + ], + "type": "object" +} - added
Output schema / $defs / ReadingNoteAdded value: +{ + "properties": { + "code": { + "type": "string" + }, + "finding_ids": { + "default": [], + "items": { + "type": "string" + }, + "type": "array" + }, + "kind": { + "enum": [ + "warning", + "assumption" + ], + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "kind", + "code", + "message" + ], + "type": "object" +} - added
Output schema / $defs / ReviewAdded value: +{ + "properties": { + "ai_read": { + "default": 0, + "type": "integer" + }, + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "reading_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "status": { + "default": "verified", + "enum": [ + "draft", + "verified" + ], + "type": "string" + } + }, + "type": "object" +} - added
Output schema / properties / readingAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/Reading" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / properties / request_hashAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / properties / reviewAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/Review" + }, + { + "type": "null" + } + ], + "default": null +}
- Changed
property_turnover_scope14 fields changed- added
Input schema / $defs / Extraction / properties / quoteAdded value: +{ + "description": "'ai_document' only: the row's words as printed on that page, contact details masked. Evidence for checking the finding; it never changes the price.", + "maxLength": 300, + "type": "string" +} - added
Input schema / $defs / Finding / properties / confirmedAdded value: +{ + "default": false, + "description": "true: the person checked this AI-read finding (one with extraction) and it says what they meant. It keeps resolution 'ai' but no longer needs review, and the answer is verified once every AI-read finding is confirmed.", + "type": "boolean" +} - changed
Input schema / $defs / Finding / properties / extraction / descriptionPrevious value: -"Leave out. Set by the web tool for findings its AI reader produced from free text; they come back as resolution 'ai' with needs_review."New value: +"Set by Tektolo's AI reader on findings it read from free text or a document (reading.findings of an earlier answer); keep it when you send such a finding back. They come back as resolution 'ai' with needs_review unless confirmed." - added
Input schema / $defs / Finding / properties / signature_likeAdded value: +{ + "default": false, + "description": "Set by Tektolo's notes reader (reading.findings, the web tool's rows): the words came right after a sign-off and read like a name or signature ('Thanks!' / 'Rotten Egg Smell'), kept only because they name a safety item. A safety item in them is raised unconfirmed (check first). Keep it when you send such a finding back, so every way of sending the same words gives the same answer.", + "type": "boolean" +} - added
Input schema / properties / readAdded value: +{ + "default": "parser", + "description": "parser (default): descriptions are read by the deterministic parser and matcher only; what they cannot place comes back as a manual-quote line with suggested codes. ai: what the parser cannot place is then read by an AI model; the answer is a draft (review.status) and echoes the reading, whose findings you confirm and send back for a verified answer (contract 0.12.0).", + "enum": [ + "parser", + "ai" + ], + "type": "string" +} - added
Output schema / $defs / FindingResolution / properties / confirmedAdded value: +{ + "default": false, + "type": "boolean" +} - changed
Output schema / $defs / FindingResolution / properties / not_billed_reason / anyOfPrevious value: -[ - { - "enum": [ - "none", - "ok", - "done" - ], - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "enum": [ + "none", + "ok", + "done", + "no_condition" + ], + "type": "string" + }, + { + "type": "null" + } +] - added
Output schema / $defs / ReadingAdded value: +{ + "properties": { + "counts": { + "$ref": "#/$defs/ReadingCounts" + }, + "findings": { + "items": { + "additionalProperties": true, + "type": "object" + }, + "type": "array" + }, + "id": { + "type": "string" + }, + "kind": { + "enum": [ + "notes", + "document" + ], + "type": "string" + }, + "model": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "notes": { + "items": { + "$ref": "#/$defs/ReadingNote" + }, + "type": "array" + }, + "prompt_version": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "required": [ + "id", + "kind", + "counts", + "findings" + ], + "type": "object" +} - added
Output schema / $defs / ReadingCountsAdded value: +{ + "properties": { + "ai": { + "type": "integer" + }, + "parser": { + "type": "integer" + }, + "total": { + "type": "integer" + }, + "unmatched": { + "type": "integer" + } + }, + "required": [ + "total", + "ai", + "parser", + "unmatched" + ], + "type": "object" +} - added
Output schema / $defs / ReadingNoteAdded value: +{ + "properties": { + "code": { + "type": "string" + }, + "finding_ids": { + "default": [], + "items": { + "type": "string" + }, + "type": "array" + }, + "kind": { + "enum": [ + "warning", + "assumption" + ], + "type": "string" + }, + "message": { + "type": "string" + } + }, + "required": [ + "kind", + "code", + "message" + ], + "type": "object" +} - added
Output schema / $defs / ReviewAdded value: +{ + "properties": { + "ai_read": { + "default": 0, + "type": "integer" + }, + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "reading_id": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "status": { + "default": "verified", + "enum": [ + "draft", + "verified" + ], + "type": "string" + } + }, + "type": "object" +} - added
Output schema / properties / readingAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/Reading" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / properties / request_hashAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / properties / reviewAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/Review" + }, + { + "type": "null" + } + ], + "default": null +}
5 tool updates
- Changed
deposit_settlement_rules22 fields changed- added
Input schema / properties / as_ofAdded value: +{ + "description": "Optional date (YYYY-MM-DD): show the law in force on that day, for a past move-out the day the tenancy ended. Omitted: the current law.", + "format": "date", + "type": "string" +} - added
Input schema / properties / expect_rulesetAdded value: +{ + "description": "Optional. The ruleset version you built against, as results carry it in provenance.ruleset_version (e.g. 'sd-2026.11.14'), or its sha256: hash. If the rules have changed since, the call fails (nothing computed, nothing charged) and says what is in force now, so you upgrade on your own schedule. Leave it out to answer under the current rules.", + "type": "string" +} - added
Input schema / properties / serve_pinnedAdded value: +{ + "default": false, + "description": "Optional, with expect_ruleset. True asks us to answer under the ruleset version you named even when the rules have changed since, from that version's signed bundle; the result says so in served_from_bundle. We refuse a version older than 12 months, one a later correction or law change replaced for your state, or one we have no bundle for. Default false: the call fails whenever the rules have changed.", + "type": "boolean" +} - added
Output schema / $defs / Alternative / properties / listed_ifAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / CleaningRule / properties / effective_onRemoved value: -{ - "anyOf": [ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } - ], - "default": null -} - added
Output schema / $defs / DeductionRules / properties / cleaning / anyOfAdded value: +[ + { + "items": { + "additionalProperties": false, + "properties": { + "amendment": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "from": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "governed_by": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "source": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "until": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "value": { + "$ref": "#/$defs/CleaningRule" + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "type": "array" + }, + { + "$ref": "#/$defs/CleaningRule" + }, + { + "items": { + "additionalProperties": false, + "properties": { + "basis": { + "enum": [ + "named", + "damage" + ], + "type": "string" + }, + "condition": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "effective_on": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "quote": { + "maxLength": 600, + "type": "string" + }, + "routine": { + "default": "barred", + "enum": [ + "barred", + "lease", + "reasonable" + ], + "type": "string" + }, + "routine_signed_provision": { + "default": false, + "type": "boolean" + }, + "section": { + "type": "string" + }, + "source": { + "type": "string" + }, + "unless_no_notice": { + "default": false, + "type": "boolean" + }, + "verbatim": { + "default": true, + "type": "boolean" + } + }, + "required": [ + "basis", + "section", + "quote", + "source" + ], + "type": "object" + }, + "type": "array" + } +] - removed
Output schema / $defs / DeductionRules / properties / cleaning / itemsRemoved value: -{ - "$ref": "#/$defs/CleaningRule" -} - removed
Output schema / $defs / DeductionRules / properties / cleaning / typeRemoved value: -"array" - added
Output schema / $defs / DescribeEachAdded value: +{ + "additionalProperties": false, + "properties": { + "quote": { + "maxLength": 400, + "type": "string" + }, + "rent_only_exempt": { + "default": false, + "type": "boolean" + }, + "section": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "required": [ + "section", + "quote", + "source" + ], + "type": "object" +} - added
Output schema / $defs / InterestRule / properties / rate_schedule / anyOfAdded value: +[ + { + "items": { + "additionalProperties": false, + "properties": { + "amendment": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "from": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "governed_by": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "source": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "until": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ] + }, + "value": { + "anyOf": [ + { + "minimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + } + ] + } + }, + "required": [ + "value" + ], + "type": "object" + }, + "type": "array" + }, + { + "minimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "items": { + "additionalProperties": false, + "properties": { + "from": { + "format": "date", + "type": "string" + }, + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "rate_value": { + "anyOf": [ + { + "minimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + } + ] + }, + "source": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "to": { + "format": "date", + "type": "string" + } + }, + "required": [ + "from", + "to", + "rate_value" + ], + "type": "object" + }, + "type": "array" + } +] - removed
Output schema / $defs / InterestRule / properties / rate_schedule / itemsRemoved value: -{ - "$ref": "#/$defs/RateWindow" -} - removed
Output schema / $defs / InterestRule / properties / rate_schedule / typeRemoved value: -"array" - added
Output schema / $defs / Itemization / properties / describe_eachAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/DescribeEach" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / MoveOutList / properties / unnotified_sectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Provenance / properties / rules_as_ofAdded value: +{ + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / RateWindowRemoved value: -{ - "additionalProperties": false, - "properties": { - "from": { - "format": "date", - "type": "string" - }, - "note": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "rate_value": { - "anyOf": [ - { - "minimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } - ] - }, - "source": { - "anyOf": [ - { - "type": "string" - }, - { - "type": "null" - } - ], - "default": null - }, - "to": { - "format": "date", - "type": "string" - } - }, - "required": [ - "from", - "to", - "rate_value" - ], - "type": "object" -} - added
Output schema / $defs / Receipts / properties / estimate_noteAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Receipts / properties / estimate_sectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / ResultSignatureAdded value: +{ + "properties": { + "jws": { + "type": "string" + }, + "payload": { + "$ref": "#/$defs/ResultSignaturePayload" + }, + "verify_code": { + "type": "string" + }, + "verify_url": { + "type": "string" + } + }, + "required": [ + "jws", + "payload", + "verify_code", + "verify_url" + ], + "type": "object" +} - added
Output schema / $defs / ResultSignaturePayloadAdded value: +{ + "properties": { + "capability": { + "type": "string" + }, + "engine_version": { + "type": "string" + }, + "issued_at": { + "type": "string" + }, + "kid": { + "type": "string" + }, + "operation": { + "type": "string" + }, + "result_hash": { + "type": "string" + }, + "ruleset_hash": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ruleset_version": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "v": { + "type": "integer" + } + }, + "required": [ + "v", + "kid", + "capability", + "operation", + "ruleset_version", + "ruleset_hash", + "engine_version", + "result_hash", + "issued_at" + ], + "type": "object" +} - added
Output schema / $defs / ReturnRule / properties / demand_in_writingAdded value: +{ + "default": false, + "type": "boolean" +} - added
Output schema / properties / signatureAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/ResultSignature" + }, + { + "type": "null" + } + ], + "default": null +}
- Changed
deposit_settlement_settle11 fields changed- changed
Input schema / $defs / Deduction / properties / description / descriptionPrevious value: -"Your own short note (e.g. 'bedroom carpet, pet stains'). Never stored, hashed or returned; the statement uses the category."New value: +"What was damaged or owed and the repair or charge (e.g. 'bedroom carpet: pet stains, two areas patched'). Printed under the line on the itemized statement you download (HTML or PDF); never stored, logged or hashed, and not in the result." - added
Input schema / $defs / Deduction / properties / good_faith_estimateAdded value: +{ + "description": "The amount is a good-faith estimate: the repair cannot reasonably be finished within the return period, or the vendor's bills have not arrived (California 1950.5(h)(3)). The receipts then follow within 14 days of the repair or the documents.", + "type": "boolean" +} - changed
Input schema / properties / demand_received_on / descriptionPrevious value: -"Day you received the tenant's written demand for the deposit (YYYY-MM-DD). Arizona, Kansas, Oklahoma, South Carolina and Mississippi start the clock on it."New value: +"Day you received the tenant's demand for the deposit (YYYY-MM-DD; written in Oklahoma, by first-class mail in Maryland 8-203(h)). Arizona, Kansas, Oklahoma, South Carolina and Mississippi start the clock on it." - added
Input schema / properties / expect_rulesetAdded value: +{ + "description": "Optional. The ruleset version you built against, as results carry it in provenance.ruleset_version (e.g. 'sd-2026.11.14'), or its sha256: hash. If the rules have changed since, the call fails (nothing computed, nothing charged) and says what is in force now, so you upgrade on your own schedule. Leave it out to answer under the current rules.", + "type": "string" +} - added
Input schema / properties / serve_pinnedAdded value: +{ + "default": false, + "description": "Optional, with expect_ruleset. True asks us to answer under the ruleset version you named even when the rules have changed since, from that version's signed bundle; the result says so in served_from_bundle. We refuse a version older than 12 months, one a later correction or law change replaced for your state, or one we have no bundle for. Default false: the call fails whenever the rules have changed.", + "type": "boolean" +} - added
Output schema / $defs / Deadline / properties / reverted_afterAdded value: +{ + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Provenance / properties / rules_as_ofAdded value: +{ + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / ResultSignatureAdded value: +{ + "properties": { + "jws": { + "type": "string" + }, + "payload": { + "$ref": "#/$defs/ResultSignaturePayload" + }, + "verify_code": { + "type": "string" + }, + "verify_url": { + "type": "string" + } + }, + "required": [ + "jws", + "payload", + "verify_code", + "verify_url" + ], + "type": "object" +} - added
Output schema / $defs / ResultSignaturePayloadAdded value: +{ + "properties": { + "capability": { + "type": "string" + }, + "engine_version": { + "type": "string" + }, + "issued_at": { + "type": "string" + }, + "kid": { + "type": "string" + }, + "operation": { + "type": "string" + }, + "result_hash": { + "type": "string" + }, + "ruleset_hash": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ruleset_version": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "v": { + "type": "integer" + } + }, + "required": [ + "v", + "kid", + "capability", + "operation", + "ruleset_version", + "ruleset_hash", + "engine_version", + "result_hash", + "issued_at" + ], + "type": "object" +} - changed
Output schema / $defs / TimelyCheck / properties / status / enumPrevious value: -[ - "on_time", - "late", - "not_yet_due", - "overdue", - "not_started", - "none_in_statute" -]New value: +[ + "on_time", + "late", + "not_yet_due", + "overdue", + "not_started", + "none_in_statute", + "reverted" +] - added
Output schema / properties / signatureAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/ResultSignature" + }, + { + "type": "null" + } + ], + "default": null +}
- Changed
property_turnover_issue_codes5 fields changed- added
Input schema / properties / expect_rulesetAdded value: +{ + "description": "Optional. The ruleset version you built against, as results carry it in provenance.ruleset_version (e.g. 'sd-2026.11.14'), or its sha256: hash. If the rules have changed since, the call fails (nothing computed, nothing charged) and says what is in force now, so you upgrade on your own schedule. Leave it out to answer under the current rules.", + "type": "string" +} - added
Input schema / properties / serve_pinnedAdded value: +{ + "default": false, + "description": "Optional, with expect_ruleset. True asks us to answer under the ruleset version you named even when the rules have changed since, from that version's signed bundle; the result says so in served_from_bundle. We refuse a version older than 12 months, one a later correction or law change replaced for your state, or one we have no bundle for. Default false: the call fails whenever the rules have changed.", + "type": "boolean" +} - added
Output schema / $defs / ResultSignatureAdded value: +{ + "properties": { + "jws": { + "type": "string" + }, + "payload": { + "$ref": "#/$defs/ResultSignaturePayload" + }, + "verify_code": { + "type": "string" + }, + "verify_url": { + "type": "string" + } + }, + "required": [ + "jws", + "payload", + "verify_code", + "verify_url" + ], + "type": "object" +} - added
Output schema / $defs / ResultSignaturePayloadAdded value: +{ + "properties": { + "capability": { + "type": "string" + }, + "engine_version": { + "type": "string" + }, + "issued_at": { + "type": "string" + }, + "kid": { + "type": "string" + }, + "operation": { + "type": "string" + }, + "result_hash": { + "type": "string" + }, + "ruleset_hash": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ruleset_version": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "v": { + "type": "integer" + } + }, + "required": [ + "v", + "kid", + "capability", + "operation", + "ruleset_version", + "ruleset_hash", + "engine_version", + "result_hash", + "issued_at" + ], + "type": "object" +} - added
Output schema / properties / signatureAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/ResultSignature" + }, + { + "type": "null" + } + ], + "default": null +}
- Changed
property_turnover_quick_estimate5 fields changed- added
Input schema / properties / expect_rulesetAdded value: +{ + "description": "Optional. The ruleset version you built against, as results carry it in provenance.ruleset_version (e.g. 'sd-2026.11.14'), or its sha256: hash. If the rules have changed since, the call fails (nothing computed, nothing charged) and says what is in force now, so you upgrade on your own schedule. Leave it out to answer under the current rules.", + "type": "string" +} - added
Input schema / properties / serve_pinnedAdded value: +{ + "default": false, + "description": "Optional, with expect_ruleset. True asks us to answer under the ruleset version you named even when the rules have changed since, from that version's signed bundle; the result says so in served_from_bundle. We refuse a version older than 12 months, one a later correction or law change replaced for your state, or one we have no bundle for. Default false: the call fails whenever the rules have changed.", + "type": "boolean" +} - added
Output schema / $defs / ResultSignatureAdded value: +{ + "properties": { + "jws": { + "type": "string" + }, + "payload": { + "$ref": "#/$defs/ResultSignaturePayload" + }, + "verify_code": { + "type": "string" + }, + "verify_url": { + "type": "string" + } + }, + "required": [ + "jws", + "payload", + "verify_code", + "verify_url" + ], + "type": "object" +} - added
Output schema / $defs / ResultSignaturePayloadAdded value: +{ + "properties": { + "capability": { + "type": "string" + }, + "engine_version": { + "type": "string" + }, + "issued_at": { + "type": "string" + }, + "kid": { + "type": "string" + }, + "operation": { + "type": "string" + }, + "result_hash": { + "type": "string" + }, + "ruleset_hash": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ruleset_version": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "v": { + "type": "integer" + } + }, + "required": [ + "v", + "kid", + "capability", + "operation", + "ruleset_version", + "ruleset_hash", + "engine_version", + "result_hash", + "issued_at" + ], + "type": "object" +} - added
Output schema / properties / signatureAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/ResultSignature" + }, + { + "type": "null" + } + ], + "default": null +}
- Changed
property_turnover_scope5 fields changed- added
Input schema / properties / expect_rulesetAdded value: +{ + "description": "Optional. The ruleset version you built against, as results carry it in provenance.ruleset_version (e.g. 'sd-2026.11.14'), or its sha256: hash. If the rules have changed since, the call fails (nothing computed, nothing charged) and says what is in force now, so you upgrade on your own schedule. Leave it out to answer under the current rules.", + "type": "string" +} - added
Input schema / properties / serve_pinnedAdded value: +{ + "default": false, + "description": "Optional, with expect_ruleset. True asks us to answer under the ruleset version you named even when the rules have changed since, from that version's signed bundle; the result says so in served_from_bundle. We refuse a version older than 12 months, one a later correction or law change replaced for your state, or one we have no bundle for. Default false: the call fails whenever the rules have changed.", + "type": "boolean" +} - added
Output schema / $defs / ResultSignatureAdded value: +{ + "properties": { + "jws": { + "type": "string" + }, + "payload": { + "$ref": "#/$defs/ResultSignaturePayload" + }, + "verify_code": { + "type": "string" + }, + "verify_url": { + "type": "string" + } + }, + "required": [ + "jws", + "payload", + "verify_code", + "verify_url" + ], + "type": "object" +} - added
Output schema / $defs / ResultSignaturePayloadAdded value: +{ + "properties": { + "capability": { + "type": "string" + }, + "engine_version": { + "type": "string" + }, + "issued_at": { + "type": "string" + }, + "kid": { + "type": "string" + }, + "operation": { + "type": "string" + }, + "result_hash": { + "type": "string" + }, + "ruleset_hash": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "ruleset_version": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ] + }, + "v": { + "type": "integer" + } + }, + "required": [ + "v", + "kid", + "capability", + "operation", + "ruleset_version", + "ruleset_hash", + "engine_version", + "result_hash", + "issued_at" + ], + "type": "object" +} - added
Output schema / properties / signatureAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/ResultSignature" + }, + { + "type": "null" + } + ], + "default": null +}
2 tool updates
- Changed
deposit_settlement_settle3 fields changed- added
Output schema / $defs / NoteFormatAdded value: +{ + "properties": { + "bold": { + "default": false, + "type": "boolean" + }, + "larger_than_body_pt": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "min_pt": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + } + }, + "type": "object" +} - added
Output schema / $defs / Statement / properties / notesAdded value: +{ + "items": { + "$ref": "#/$defs/StatementNote" + }, + "type": "array" +} - added
Output schema / $defs / StatementNoteAdded value: +{ + "properties": { + "audience": { + "enum": [ + "tenant", + "manager" + ], + "type": "string" + }, + "blanks": { + "items": { + "type": "string" + }, + "type": "array" + }, + "citation": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "format": { + "anyOf": [ + { + "$ref": "#/$defs/NoteFormat" + }, + { + "type": "null" + } + ], + "default": null + }, + "kind": { + "default": "note", + "enum": [ + "note", + "required_notice", + "attestation" + ], + "type": "string" + }, + "text": { + "type": "string" + } + }, + "required": [ + "text", + "audience" + ], + "type": "object" +}
- Changed
property_turnover_scope7 fields changed- changed
Input schema / $defs / Extraction / descriptionPrevious value: -"How a finding was produced, when software read it from free text (contract 0.4.0).\n\nSet by the web tool when its AI reader (Azure OpenAI) turned a person's own words into this\nfinding. The engine reports such a finding as ``resolution: \"ai\"`` with ``needs_review``\nand flags its lines; it never changes how the finding is priced."New value: +"How a finding was produced, when software read it from free text (contract 0.4.0) or\nfrom an uploaded document (``ai_document`` and ``page``, additive).\n\nSet by the web tool when its AI reader (Azure OpenAI) turned a person's own words, or a page\nof their inspection report, into this finding. The engine reports such a finding as\n``resolution: \"ai\"`` with ``needs_review`` and flags its lines; it never changes how the\nfinding is priced." - removed
Input schema / $defs / Extraction / properties / method / constRemoved value: -"ai" - changed
Input schema / $defs / Extraction / properties / method / descriptionPrevious value: -"'ai': read by a language model from free text."New value: +"'ai': read by a language model from free text. 'ai_document': read by a language model from a page of an uploaded document." - added
Input schema / $defs / Extraction / properties / method / enumAdded value: +[ + "ai", + "ai_document" +] - added
Input schema / $defs / Extraction / properties / pageAdded value: +{ + "description": "'ai_document' only: the page of the upload it was read from (1-based).", + "maximum": 100, + "minimum": 1, + "type": "integer" +} - added
Input schema / $defs / Extraction / properties / reviewAdded value: +{ + "$ref": "#/$defs/ExtractionReview", + "description": "'ai_document' only: the person's review before estimating (confirmed, accepted or edited). Leave out when the finding was not checked; it then needs review.", + "type": "object" +} - added
Input schema / $defs / ExtractionReviewAdded value: +{ + "additionalProperties": false, + "description": "What the person did with a finding the web tool read from an uploaded document, before\nestimating (contract 0.11.0, additive). ``confirmed``: they pressed \"Looks right\";\n``accepted``: left as read, on a row the page did not flag; ``edited``: they changed it\n(``changed`` names what). A reviewed finding keeps its ``extraction`` (where it came from)\nbut is no longer reported as needing review: the person has checked it.", + "properties": { + "changed": { + "description": "'edited': the fields the person changed.", + "items": { + "enum": [ + "description", + "area", + "label", + "extent", + "quantity" + ], + "type": "string" + }, + "maxItems": 5, + "type": "array" + }, + "flags": { + "description": "Why the page flagged it, if it did.", + "items": { + "enum": [ + "low_confidence", + "medium_confidence", + "quote_not_on_page", + "count_unread", + "column_unclear", + "ok_unclear", + "unmatched", + "loose_match", + "ai_match" + ], + "type": "string" + }, + "maxItems": 9, + "type": "array" + }, + "outcome": { + "enum": [ + "confirmed", + "accepted", + "edited" + ], + "type": "string" + } + }, + "required": [ + "outcome" + ], + "type": "object" +}
5 tool updates
- Changed
deposit_settlement_rules1 field changed- added
Input schema / properties / state / descriptionAdded value: +"US state, 2-letter code or name (e.g. 'TX')."
- Changed
deposit_settlement_settle5 fields changed- added
Input schema / properties / deposit_usd / descriptionAdded value: +"Security deposit held, dollars." - added
Input schema / properties / documentation / typeAdded value: +"object" - added
Input schema / properties / returned / typeAdded value: +"object" - added
Input schema / properties / state / descriptionAdded value: +"US state, 2-letter code (e.g. 'CA'); a state name also works." - added
Input schema / properties / vacated_on / descriptionAdded value: +"Day the tenant moved out and returned possession (YYYY-MM-DD)."
- Changed
property_turnover_issue_codes1 field changed- added
Input schema / properties / limit / descriptionAdded value: +"Most codes to return."
- Changed
property_turnover_quick_estimate10 fields changed- added
Input schema / properties / bathrooms / descriptionAdded value: +"Half baths count as 0.5." - added
Input schema / properties / bedrooms / descriptionAdded value: +"0 for a studio." - added
Input schema / properties / price_tier / descriptionAdded value: +"bulk_contract (portfolio contract prices) | pm_vendor (default: a property manager buying turns from local vendors) | retail_one_off (an owner hiring one contractor)." - added
Input schema / properties / price_tier / typeAdded value: +"string" - added
Input schema / properties / profile / descriptionAdded value: +"minimum (rent-ready basics) | standard | premium (higher finish)." - added
Input schema / properties / profile / typeAdded value: +"string" - added
Input schema / properties / unit_type / descriptionAdded value: +"Single-family homes and townhomes get house-sized defaults (floor area, locks)." - added
Input schema / properties / unit_type / typeAdded value: +"string" - added
Input schema / properties / year_built / descriptionAdded value: +"Drives lead-paint (pre-1978) handling." - added
Input schema / properties / zip / descriptionAdded value: +"The user's 5-digit US ZIP code. If it is missing or not exactly 5 digits, ask the user; never guess, pad or correct it."
- Changed
property_turnover_scope23 fields changed- added
Input schema / $defs / Finding / properties / extent / typeAdded value: +"string" - added
Input schema / $defs / Finding / properties / extraction / typeAdded value: +"object" - added
Input schema / $defs / Finding / properties / location / typeAdded value: +"object" - added
Input schema / $defs / Finding / properties / quantity / typeAdded value: +"object" - added
Input schema / $defs / Location / properties / area / typeAdded value: +"string" - added
Input schema / $defs / PropertyProfile / properties / floor_coverings / typeAdded value: +"object" - added
Input schema / $defs / PropertyProfile / properties / unit_type / typeAdded value: +"string" - added
Input schema / $defs / Quantity / properties / uom / typeAdded value: +"string" - added
Input schema / $defs / RateCardEntry / properties / trade / typeAdded value: +"string" - added
Input schema / $defs / RateCardEntry / properties / uom / typeAdded value: +"string" - added
Input schema / $defs / Standards / properties / overrides / typeAdded value: +"object" - added
Input schema / $defs / Standards / properties / price_tier / typeAdded value: +"string" - added
Input schema / $defs / Standards / properties / profile / typeAdded value: +"string" - added
Input schema / properties / constraints / descriptionAdded value: +"Target ready date, whether the unit is occupied, access notes." - added
Input schema / properties / constraints / typeAdded value: +"object" - added
Input schema / properties / decisions / descriptionAdded value: +"Approve, decline or defer lines or findings from an earlier scope." - added
Input schema / properties / findings / descriptionAdded value: +"Move-out inspection findings, one per condition, with location and extent." - added
Input schema / properties / property / descriptionAdded value: +"The unit: ZIP, size, type and year built." - added
Input schema / properties / property / typeAdded value: +"object" - added
Input schema / properties / rate_card / descriptionAdded value: +"Your own prices by trade or task; they replace the regional library prices." - added
Input schema / properties / standards / descriptionAdded value: +"Finish profile, price tier and overrides." - added
Input schema / properties / standards / typeAdded value: +"object" - added
Input schema / properties / trade_vendors / descriptionAdded value: +"Vendor (name, contact) to put on each trade's lines."
5 tool updates
- Changed
deposit_settlement_rules375 fields changed- removed
Input schema / properties / audit / titleRemoved value: -"Audit" - removed
Input schema / properties / city / anyOfRemoved value: -[ - { - "maxLength": 80, - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / properties / city / defaultRemoved value: -null - added
Input schema / properties / city / maxLengthAdded value: +80 - removed
Input schema / properties / city / titleRemoved value: -"City" - added
Input schema / properties / city / typeAdded value: +"string" - removed
Input schema / properties / state / titleRemoved value: -"State" - removed
Input schema / titleRemoved value: -"deposit_settlement_rulesArguments" - removed
Output schema / $defs / Alternative / descriptionRemoved value: -"A different deadline when a condition holds (e.g. 14 days when nothing is deducted).\n\n``condition`` is the statute's case in words. The engine evaluates it when ``requires``\nlists mapped conditions, when the condition itself is one (``no_deductions``), or when an\neffective-date window is the whole condition; any other alternative keeps the base rule and\nadds an assumption naming it. ``combine`` says how a matching alternative applies:\n``replace`` the base period (the first match wins), or take the ``later_date`` /\n``earlier_date`` of the base deadline and this one (Connecticut: 21 days after the end of\nthe tenancy or 15 days after the forwarding address, whichever is later)." - removed
Output schema / $defs / Alternative / properties / combine / titleRemoved value: -"Combine" - removed
Output schema / $defs / Alternative / properties / condition / titleRemoved value: -"Condition" - removed
Output schema / $defs / Alternative / properties / counting / titleRemoved value: -"Counting" - removed
Output schema / $defs / Alternative / properties / days / titleRemoved value: -"Days" - removed
Output schema / $defs / Alternative / properties / effective_before / titleRemoved value: -"Effective Before" - added
Output schema / $defs / Alternative / properties / effective_byAdded value: +{ + "default": "termination", + "enum": [ + "termination", + "conduct" + ], + "type": "string" +} - removed
Output schema / $defs / Alternative / properties / effective_on_or_after / titleRemoved value: -"Effective On Or After" - added
Output schema / $defs / Alternative / properties / extendsAdded value: +{ + "default": "deadline", + "enum": [ + "deadline", + "itemization" + ], + "type": "string" +} - removed
Output schema / $defs / Alternative / properties / months / titleRemoved value: -"Months" - removed
Output schema / $defs / Alternative / properties / note / titleRemoved value: -"Note" - removed
Output schema / $defs / Alternative / properties / notice_within_days / titleRemoved value: -"Notice Within Days" - removed
Output schema / $defs / Alternative / properties / pending / titleRemoved value: -"Pending" - changed
Output schema / $defs / Alternative / properties / requires / items / enumPrevious value: -[ - "no_deductions", - "with_deductions", - "damage_deductions", - "no_damage_deductions", - "lease_specifies_longer", - "lease_specifies_shorter", - "tenant_gave_notice", - "contractor_needed", - "damages_exceed_deposit" -]New value: +[ + "no_deductions", + "with_deductions", + "damage_deductions", + "no_damage_deductions", + "lease_specifies_longer", + "lease_specifies_shorter", + "tenant_gave_notice", + "contractor_needed", + "damages_exceed_deposit", + "written_lease", + "at_will", + "abandoned", + "charges_only", + "relet_before_end" +] - removed
Output schema / $defs / Alternative / properties / requires / titleRemoved value: -"Requires" - removed
Output schema / $defs / Alternative / properties / start / titleRemoved value: -"Start" - removed
Output schema / $defs / Alternative / titleRemoved value: -"Alternative" - removed
Output schema / $defs / Change / properties / effective_on / titleRemoved value: -"Effective On" - removed
Output schema / $defs / Change / properties / source / titleRemoved value: -"Source" - removed
Output schema / $defs / Change / properties / text / titleRemoved value: -"Text" - removed
Output schema / $defs / Change / titleRemoved value: -"Change" - removed
Output schema / $defs / Citation / properties / accessed / titleRemoved value: -"Accessed" - removed
Output schema / $defs / Citation / properties / quote / descriptionRemoved value: -"Short quote of the rule (or our summary when verbatim is false)." - removed
Output schema / $defs / Citation / properties / quote / titleRemoved value: -"Quote" - removed
Output schema / $defs / Citation / properties / rule / descriptionRemoved value: -"What the citation supports: deadline, interest, penalty, ..." - removed
Output schema / $defs / Citation / properties / rule / titleRemoved value: -"Rule" - removed
Output schema / $defs / Citation / properties / section / titleRemoved value: -"Section" - removed
Output schema / $defs / Citation / properties / source_title / titleRemoved value: -"Source Title" - removed
Output schema / $defs / Citation / properties / url / titleRemoved value: -"Url" - removed
Output schema / $defs / Citation / properties / verbatim / titleRemoved value: -"Verbatim" - removed
Output schema / $defs / Citation / titleRemoved value: -"Citation" - removed
Output schema / $defs / CityRules / properties / applicability / titleRemoved value: -"Applicability" - removed
Output schema / $defs / CityRules / properties / depreciation_schedule / titleRemoved value: -"Depreciation Schedule" - removed
Output schema / $defs / CityRules / properties / forfeiture / titleRemoved value: -"Forfeiture" - removed
Output schema / $defs / CityRules / properties / id / titleRemoved value: -"Id" - removed
Output schema / $defs / CityRules / properties / name / titleRemoved value: -"Name" - removed
Output schema / $defs / CityRules / properties / notes / titleRemoved value: -"Notes" - removed
Output schema / $defs / CityRules / properties / state / titleRemoved value: -"State" - removed
Output schema / $defs / CityRules / titleRemoved value: -"CityRules" - added
Output schema / $defs / CleaningRuleAdded value: +{ + "additionalProperties": false, + "properties": { + "basis": { + "enum": [ + "named", + "damage" + ], + "type": "string" + }, + "condition": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "effective_on": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "quote": { + "maxLength": 600, + "type": "string" + }, + "routine": { + "default": "barred", + "enum": [ + "barred", + "lease", + "reasonable" + ], + "type": "string" + }, + "routine_signed_provision": { + "default": false, + "type": "boolean" + }, + "section": { + "type": "string" + }, + "source": { + "type": "string" + }, + "unless_no_notice": { + "default": false, + "type": "boolean" + }, + "verbatim": { + "default": true, + "type": "boolean" + } + }, + "required": [ + "basis", + "section", + "quote", + "source" + ], + "type": "object" +} - added
Output schema / $defs / ContractDamagesAdded value: +{ + "additionalProperties": false, + "properties": { + "categories": { + "items": { + "enum": [ + "unpaid_rent", + "unpaid_utilities", + "cleaning", + "carpet", + "flooring", + "paint", + "blinds_window_coverings", + "appliance", + "fixture_or_hardware", + "wall_or_door_repair", + "key_or_lock", + "late_fees", + "lease_break_fee", + "moving_and_storage", + "reletting_costs", + "trash_and_abandoned_items", + "other_damage", + "other" + ], + "type": "string" + }, + "type": "array" + }, + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "quote": { + "maxLength": 400, + "type": "string" + }, + "section": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "required": [ + "section", + "quote", + "source", + "categories" + ], + "type": "object" +} - changed
Output schema / $defs / DeductionRules / properties / allowed / items / enumPrevious value: -[ - "unpaid_rent", - "unpaid_utilities", - "late_fees", - "lease_break_fee", - "cleaning_to_move_in_condition", - "damage_beyond_wear", - "future_defaults_under_lease", - "other_lease_obligations", - "moving_and_storage", - "real_estate_tax_increase" -]New value: +[ + "unpaid_rent", + "unpaid_utilities", + "late_fees", + "lease_break_fee", + "cleaning_to_move_in_condition", + "damage_beyond_wear", + "future_defaults_under_lease", + "other_lease_obligations", + "moving_and_storage", + "real_estate_tax_increase", + "removal_of_items_left" +] - removed
Output schema / $defs / DeductionRules / properties / allowed / titleRemoved value: -"Allowed" - removed
Output schema / $defs / DeductionRules / properties / allowed_detail / titleRemoved value: -"Allowed Detail" - added
Output schema / $defs / DeductionRules / properties / cleaningAdded value: +{ + "default": [], + "items": { + "$ref": "#/$defs/CleaningRule" + }, + "type": "array" +} - added
Output schema / $defs / DeductionRules / properties / contract_damagesAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/ContractDamages" + }, + { + "type": "null" + } + ], + "default": null +} - changed
Output schema / $defs / DeductionRules / properties / depreciation / defaultPrevious value: -"none"New value: +"silent" - changed
Output schema / $defs / DeductionRules / properties / depreciation / enumPrevious value: -[ - "required", - "guidance", - "none" -]New value: +[ + "required", + "guidance", + "silent" +] - removed
Output schema / $defs / DeductionRules / properties / depreciation / titleRemoved value: -"Depreciation" - removed
Output schema / $defs / DeductionRules / properties / depreciation_note / titleRemoved value: -"Depreciation Note" - changed
Output schema / $defs / DeductionRules / properties / depreciation_only / items / enumPrevious value: -[ - "unpaid_rent", - "unpaid_utilities", - "cleaning", - "carpet", - "flooring", - "paint", - "blinds_window_coverings", - "appliance", - "fixture_or_hardware", - "wall_or_door_repair", - "key_or_lock", - "late_fees", - "lease_break_fee", - "other_damage", - "other" -]New value: +[ + "unpaid_rent", + "unpaid_utilities", + "cleaning", + "carpet", + "flooring", + "paint", + "blinds_window_coverings", + "appliance", + "fixture_or_hardware", + "wall_or_door_repair", + "key_or_lock", + "late_fees", + "lease_break_fee", + "moving_and_storage", + "reletting_costs", + "trash_and_abandoned_items", + "other_damage", + "other" +] - removed
Output schema / $defs / DeductionRules / properties / depreciation_only / titleRemoved value: -"Depreciation Only" - removed
Output schema / $defs / DeductionRules / properties / excluded / titleRemoved value: -"Excluded" - added
Output schema / $defs / DeductionRules / properties / mitigation_sectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DeductionRules / properties / nonstandard_onlyAdded value: +{ + "default": [], + "items": { + "enum": [ + "unpaid_rent", + "unpaid_utilities", + "cleaning", + "carpet", + "flooring", + "paint", + "blinds_window_coverings", + "appliance", + "fixture_or_hardware", + "wall_or_door_repair", + "key_or_lock", + "late_fees", + "lease_break_fee", + "moving_and_storage", + "reletting_costs", + "trash_and_abandoned_items", + "other_damage", + "other" + ], + "type": "string" + }, + "type": "array" +} - added
Output schema / $defs / DeductionRules / properties / nonstandard_sectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / DeductionRules / properties / normal_wear_excluded / titleRemoved value: -"Normal Wear Excluded" - added
Output schema / $defs / DeductionRules / properties / not_allowed_warningAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / DeductionRules / properties / note / titleRemoved value: -"Note" - removed
Output schema / $defs / DeductionRules / titleRemoved value: -"DeductionRules" - added
Output schema / $defs / DepositCap / properties / before_furnished_monthsAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DepositCap / properties / before_months_rentAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DepositCap / properties / counts_prepaid_rentAdded value: +{ + "default": false, + "type": "boolean" +} - added
Output schema / $defs / DepositCap / properties / effective_byAdded value: +{ + "default": "collected", + "enum": [ + "collected", + "lease_signed" + ], + "type": "string" +} - added
Output schema / $defs / DepositCap / properties / effective_onAdded value: +{ + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DepositCap / properties / excess_remedyAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/ExcessRemedy" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DepositCap / properties / excludes_pet_depositAdded value: +{ + "default": false, + "type": "boolean" +} - added
Output schema / $defs / DepositCap / properties / furnished_exemptAdded value: +{ + "default": false, + "type": "boolean" +} - added
Output schema / $defs / DepositCap / properties / furnished_monthsAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DepositCap / properties / later_after_monthsAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DepositCap / properties / later_months_rentAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DepositCap / properties / max_rent_usdAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DepositCap / properties / max_term_monthsAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DepositCap / properties / min_term_monthsAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / DepositCap / properties / minimum_usd / titleRemoved value: -"Minimum Usd" - removed
Output schema / $defs / DepositCap / properties / months_rent / titleRemoved value: -"Months Rent" - removed
Output schema / $defs / DepositCap / properties / note / titleRemoved value: -"Note" - added
Output schema / $defs / DepositCap / properties / pet_allowance_monthsAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DepositCap / properties / prepaid_cap_monthsAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / DepositCap / properties / source / titleRemoved value: -"Source" - added
Output schema / $defs / DepositCap / properties / variant_monthsAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DepositCap / properties / variant_noteAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DepositCap / properties / variant_whenAdded value: +{ + "anyOf": [ + { + "enum": [ + "small_landlord", + "tenant_age_62_plus", + "month_to_month" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / DepositCap / properties / variants / titleRemoved value: -"Variants" - removed
Output schema / $defs / DepositCap / titleRemoved value: -"DepositCap" - added
Output schema / $defs / ExcessRemedyAdded value: +{ + "additionalProperties": false, + "properties": { + "multiple": { + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + } + ] + }, + "quote": { + "maxLength": 400, + "type": "string" + }, + "section": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "required": [ + "multiple", + "section", + "quote", + "source" + ], + "type": "object" +} - removed
Output schema / $defs / Exclusion / descriptionRemoved value: -"A category the statute keeps out of the deposit (Delaware: damage correctable by painting\nand ordinary cleaning): 'no', cited." - changed
Output schema / $defs / Exclusion / properties / category / enumPrevious value: -[ - "unpaid_rent", - "unpaid_utilities", - "cleaning", - "carpet", - "flooring", - "paint", - "blinds_window_coverings", - "appliance", - "fixture_or_hardware", - "wall_or_door_repair", - "key_or_lock", - "late_fees", - "lease_break_fee", - "other_damage", - "other" -]New value: +[ + "unpaid_rent", + "unpaid_utilities", + "cleaning", + "carpet", + "flooring", + "paint", + "blinds_window_coverings", + "appliance", + "fixture_or_hardware", + "wall_or_door_repair", + "key_or_lock", + "late_fees", + "lease_break_fee", + "moving_and_storage", + "reletting_costs", + "trash_and_abandoned_items", + "other_damage", + "other" +] - removed
Output schema / $defs / Exclusion / properties / category / titleRemoved value: -"Category" - removed
Output schema / $defs / Exclusion / properties / note / titleRemoved value: -"Note" - removed
Output schema / $defs / Exclusion / properties / quote / titleRemoved value: -"Quote" - removed
Output schema / $defs / Exclusion / properties / section / titleRemoved value: -"Section" - removed
Output schema / $defs / Exclusion / properties / source / titleRemoved value: -"Source" - removed
Output schema / $defs / Exclusion / titleRemoved value: -"Exclusion" - added
Output schema / $defs / FallbackAdded value: +{ + "additionalProperties": false, + "properties": { + "days": { + "exclusiveMinimum": 0, + "type": "integer" + }, + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "section": { + "type": "string" + }, + "start": { + "default": "vacate", + "enum": [ + "vacate", + "termination", + "later_of_vacate_and_termination", + "forwarding_address", + "demand", + "later_of_termination_and_address", + "latest_of_termination_possession_and_address", + "earlier_of_termination_and_surrender", + "surrender_or_termination_first", + "new_tenant_occupancy", + "termination_possession_and_demand", + "claim_notice" + ], + "type": "string" + } + }, + "required": [ + "days", + "section" + ], + "type": "object" +} - removed
Output schema / $defs / Forfeiture / descriptionRemoved value: -"A statute's consequence for a missed duty: the landlord loses the right to keep some or\nall of the deposit. Computed, not relayed: when the trigger is met as of ``as_of`` (the date\npassed and the statement or refund was not sent in time, or a statement sent now would be\nlate), the barred lines become ``allowed: no`` (``depends`` when ``gate`` needs a finding or\nthe category is ``contested``) and the totals are recomputed. Before then the lines stand and\na warning names the date. ``not_in_input`` rows turn on facts the request cannot state and\nare relayed as unknowns whenever something is deducted." - removed
Output schema / $defs / Forfeiture / properties / address_relief_days / titleRemoved value: -"Address Relief Days" - removed
Output schema / $defs / Forfeiture / properties / bars / titleRemoved value: -"Bars" - removed
Output schema / $defs / Forfeiture / properties / condition / titleRemoved value: -"Condition" - changed
Output schema / $defs / Forfeiture / properties / contested / items / enumPrevious value: -[ - "unpaid_rent", - "unpaid_utilities", - "cleaning", - "carpet", - "flooring", - "paint", - "blinds_window_coverings", - "appliance", - "fixture_or_hardware", - "wall_or_door_repair", - "key_or_lock", - "late_fees", - "lease_break_fee", - "other_damage", - "other" -]New value: +[ + "unpaid_rent", + "unpaid_utilities", + "cleaning", + "carpet", + "flooring", + "paint", + "blinds_window_coverings", + "appliance", + "fixture_or_hardware", + "wall_or_door_repair", + "key_or_lock", + "late_fees", + "lease_break_fee", + "moving_and_storage", + "reletting_costs", + "trash_and_abandoned_items", + "other_damage", + "other" +] - removed
Output schema / $defs / Forfeiture / properties / contested / titleRemoved value: -"Contested" - removed
Output schema / $defs / Forfeiture / properties / effective_on / titleRemoved value: -"Effective On" - changed
Output schema / $defs / Forfeiture / properties / exempt / items / enumPrevious value: -[ - "unpaid_rent", - "unpaid_utilities", - "cleaning", - "carpet", - "flooring", - "paint", - "blinds_window_coverings", - "appliance", - "fixture_or_hardware", - "wall_or_door_repair", - "key_or_lock", - "late_fees", - "lease_break_fee", - "other_damage", - "other" -]New value: +[ + "unpaid_rent", + "unpaid_utilities", + "cleaning", + "carpet", + "flooring", + "paint", + "blinds_window_coverings", + "appliance", + "fixture_or_hardware", + "wall_or_door_repair", + "key_or_lock", + "late_fees", + "lease_break_fee", + "moving_and_storage", + "reletting_costs", + "trash_and_abandoned_items", + "other_damage", + "other" +] - removed
Output schema / $defs / Forfeiture / properties / exempt / titleRemoved value: -"Exempt" - removed
Output schema / $defs / Forfeiture / properties / gate / titleRemoved value: -"Gate" - removed
Output schema / $defs / Forfeiture / properties / keeps_claim / titleRemoved value: -"Keeps Claim" - added
Output schema / $defs / Forfeiture / properties / not_if_abandonedAdded value: +{ + "default": false, + "type": "boolean" +} - removed
Output schema / $defs / Forfeiture / properties / note / titleRemoved value: -"Note" - removed
Output schema / $defs / Forfeiture / properties / quote / titleRemoved value: -"Quote" - removed
Output schema / $defs / Forfeiture / properties / section / titleRemoved value: -"Section" - added
Output schema / $defs / Forfeiture / properties / short_interest_contestedAdded value: +{ + "default": false, + "type": "boolean" +} - removed
Output schema / $defs / Forfeiture / properties / source / titleRemoved value: -"Source" - removed
Output schema / $defs / Forfeiture / properties / tenant_notice_relief / titleRemoved value: -"Tenant Notice Relief" - removed
Output schema / $defs / Forfeiture / properties / trigger / titleRemoved value: -"Trigger" - removed
Output schema / $defs / Forfeiture / properties / verbatim / titleRemoved value: -"Verbatim" - removed
Output schema / $defs / Forfeiture / titleRemoved value: -"Forfeiture" - removed
Output schema / $defs / Guide / descriptionRemoved value: -"An official plain-language resource for the state or city (an agency guide)." - removed
Output schema / $defs / Guide / properties / accessed / titleRemoved value: -"Accessed" - removed
Output schema / $defs / Guide / properties / publisher / titleRemoved value: -"Publisher" - removed
Output schema / $defs / Guide / properties / title / titleRemoved value: -"Title" - removed
Output schema / $defs / Guide / properties / url / titleRemoved value: -"Url" - removed
Output schema / $defs / Guide / titleRemoved value: -"Guide" - added
Output schema / $defs / InterestRule / properties / accrual_floorAdded value: +{ + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / InterestRule / properties / accrual_floor_sectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / InterestRule / properties / accrues_after_monthsAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / InterestRule / properties / bank_rate_lesserAdded value: +{ + "default": false, + "type": "boolean" +} - removed
Output schema / $defs / InterestRule / properties / base / titleRemoved value: -"Base" - added
Output schema / $defs / InterestRule / properties / compoundAdded value: +{ + "default": "none", + "enum": [ + "none", + "annual" + ], + "type": "string" +} - removed
Output schema / $defs / InterestRule / properties / condition / titleRemoved value: -"Condition" - added
Output schema / $defs / InterestRule / properties / count_last_dayAdded value: +{ + "default": false, + "type": "boolean" +} - added
Output schema / $defs / InterestRule / properties / due_daysAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / InterestRule / properties / due_sectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / InterestRule / properties / due_startAdded value: +{ + "default": "vacate", + "enum": [ + "vacate", + "termination", + "later_of_vacate_and_termination", + "forwarding_address", + "demand", + "later_of_termination_and_address", + "latest_of_termination_possession_and_address", + "earlier_of_termination_and_surrender", + "surrender_or_termination_first", + "new_tenant_occupancy", + "termination_possession_and_demand", + "claim_notice" + ], + "type": "string" +} - added
Output schema / $defs / InterestRule / properties / fee_percentAdded value: +{ + "anyOf": [ + { + "minimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / InterestRule / properties / formula / titleRemoved value: -"Formula" - removed
Output schema / $defs / InterestRule / properties / held_until / titleRemoved value: -"Held Until" - added
Output schema / $defs / InterestRule / properties / includes_prepaid_rentAdded value: +{ + "default": false, + "type": "boolean" +} - added
Output schema / $defs / InterestRule / properties / legacy_beforeAdded value: +{ + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / InterestRule / properties / legacy_interval_monthsAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / InterestRule / properties / legacy_rateAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - changed
Output schema / $defs / InterestRule / properties / method / enumPrevious value: -[ - "simple", - "per_window", - "anniversary_years", - "monthly" -]New value: +[ + "simple", + "monthly_by_year", + "months_to_compliance", + "lease_years", + "per_window", + "anniversary_years", + "monthly" +] - removed
Output schema / $defs / InterestRule / properties / method / titleRemoved value: -"Method" - added
Output schema / $defs / InterestRule / properties / min_deposit_months_rentAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / InterestRule / properties / min_deposit_usd / titleRemoved value: -"Min Deposit Usd" - added
Output schema / $defs / InterestRule / properties / min_lease_term_monthsAdded value: +{ + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / InterestRule / properties / min_tenancy_days / titleRemoved value: -"Min Tenancy Days" - removed
Output schema / $defs / InterestRule / properties / min_tenancy_months / titleRemoved value: -"Min Tenancy Months" - removed
Output schema / $defs / InterestRule / properties / min_tenancy_strict / titleRemoved value: -"Min Tenancy Strict" - removed
Output schema / $defs / InterestRule / properties / min_units / titleRemoved value: -"Min Units" - added
Output schema / $defs / InterestRule / properties / minimum_usdAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / InterestRule / properties / note / titleRemoved value: -"Note" - added
Output schema / $defs / InterestRule / properties / ordinance_coverageAdded value: +{ + "default": false, + "type": "boolean" +} - removed
Output schema / $defs / InterestRule / properties / payable / titleRemoved value: -"Payable" - removed
Output schema / $defs / InterestRule / properties / rate / titleRemoved value: -"Rate" - added
Output schema / $defs / InterestRule / properties / rate_published_byAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / InterestRule / properties / rate_schedule / titleRemoved value: -"Rate Schedule" - removed
Output schema / $defs / InterestRule / properties / rate_value / titleRemoved value: -"Rate Value" - removed
Output schema / $defs / InterestRule / properties / rate_year / titleRemoved value: -"Rate Year" - removed
Output schema / $defs / InterestRule / properties / required / titleRemoved value: -"Required" - added
Output schema / $defs / InterestRule / properties / year_startsAdded value: +{ + "anyOf": [ + { + "pattern": "^\\d{2}-\\d{2}$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / InterestRule / titleRemoved value: -"InterestRule" - added
Output schema / $defs / Itemization / properties / after_refundAdded value: +{ + "default": false, + "type": "boolean" +} - removed
Output schema / $defs / Itemization / properties / days / titleRemoved value: -"Days" - removed
Output schema / $defs / Itemization / properties / effective_on / titleRemoved value: -"Effective On" - removed
Output schema / $defs / Itemization / properties / months / titleRemoved value: -"Months" - added
Output schema / $defs / Itemization / properties / move_in_statementAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/MoveInStatement" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Itemization / properties / move_out_listAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/MoveOutList" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / Itemization / properties / note / titleRemoved value: -"Note" - added
Output schema / $defs / Itemization / properties / on_full_refundAdded value: +{ + "default": false, + "type": "boolean" +} - added
Output schema / $defs / Itemization / properties / refund_with_listAdded value: +{ + "default": false, + "type": "boolean" +} - removed
Output schema / $defs / Itemization / properties / required / titleRemoved value: -"Required" - removed
Output schema / $defs / Itemization / properties / start / titleRemoved value: -"Start" - removed
Output schema / $defs / Itemization / properties / with_refund / titleRemoved value: -"With Refund" - removed
Output schema / $defs / Itemization / titleRemoved value: -"Itemization" - removed
Output schema / $defs / JurisdictionRef / properties / city / descriptionRemoved value: -"The city you sent, as given." - removed
Output schema / $defs / JurisdictionRef / properties / city / titleRemoved value: -"City" - removed
Output schema / $defs / JurisdictionRef / properties / city_overlay / descriptionRemoved value: -"The covered city whose rules were layered on, if any." - removed
Output schema / $defs / JurisdictionRef / properties / city_overlay / titleRemoved value: -"City Overlay" - added
Output schema / $defs / JurisdictionRef / properties / city_rules_checkedAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / JurisdictionRef / properties / covered / titleRemoved value: -"Covered" - removed
Output schema / $defs / JurisdictionRef / properties / state / titleRemoved value: -"State" - removed
Output schema / $defs / JurisdictionRef / properties / state_name / titleRemoved value: -"State Name" - removed
Output schema / $defs / JurisdictionRef / properties / verified / descriptionRemoved value: -"True when the main rule text was read verbatim at the official source." - removed
Output schema / $defs / JurisdictionRef / properties / verified / titleRemoved value: -"Verified" - removed
Output schema / $defs / JurisdictionRef / titleRemoved value: -"JurisdictionRef" - removed
Output schema / $defs / LateFeeRule / descriptionRemoved value: -"The most a late fee may be, per late payment (or per month), computed from the monthly\nrent: ``flat_usd`` and ``percent`` (of the rent, or of the rent above ``over_usd``) combined\nas the greater, the lesser or the sum; ``rent_tiers`` / ``unit_tiers`` pick the figure by\nrent or building size. ``presumption``: the figure is only a safe harbor (Texas), so a larger\nfee is 'depends'. ``conditional``: no figure can be checked (Massachusetts: nothing until 30\ndays late; Oregon's reasonable flat fee; Wisconsin's nonstandard provision): 'depends' with\nthe text. The engine allows up to the cap for one late payment unless the line says how many\n(``late_payments``); more than one cap without a count is 'depends'." - removed
Output schema / $defs / LateFeeRule / properties / combine / titleRemoved value: -"Combine" - removed
Output schema / $defs / LateFeeRule / properties / conditional / titleRemoved value: -"Conditional" - added
Output schema / $defs / LateFeeRule / properties / deposit_useAdded value: +{ + "default": false, + "type": "boolean" +} - removed
Output schema / $defs / LateFeeRule / properties / flat_usd / titleRemoved value: -"Flat Usd" - removed
Output schema / $defs / LateFeeRule / properties / note / titleRemoved value: -"Note" - removed
Output schema / $defs / LateFeeRule / properties / over_usd / titleRemoved value: -"Over Usd" - removed
Output schema / $defs / LateFeeRule / properties / per / titleRemoved value: -"Per" - removed
Output schema / $defs / LateFeeRule / properties / percent / titleRemoved value: -"Percent" - removed
Output schema / $defs / LateFeeRule / properties / presumption / titleRemoved value: -"Presumption" - removed
Output schema / $defs / LateFeeRule / properties / quote / titleRemoved value: -"Quote" - removed
Output schema / $defs / LateFeeRule / properties / rent_tiers / titleRemoved value: -"Rent Tiers" - removed
Output schema / $defs / LateFeeRule / properties / section / titleRemoved value: -"Section" - removed
Output schema / $defs / LateFeeRule / properties / source / titleRemoved value: -"Source" - removed
Output schema / $defs / LateFeeRule / properties / unit_tiers / titleRemoved value: -"Unit Tiers" - removed
Output schema / $defs / LateFeeRule / properties / verbatim / titleRemoved value: -"Verbatim" - removed
Output schema / $defs / LateFeeRule / titleRemoved value: -"LateFeeRule" - removed
Output schema / $defs / LeaseBreakRule / descriptionRemoved value: -"What the statute lets a landlord keep for a tenancy ended early. ``actual_rent``: only\nthe rent actually lost (after mitigation), not a flat fee (Michigan, Indiana, North Carolina);\n``cap_months_rent``: a fee up to ``months_rent`` x rent when the agreement provides it (Oregon\n1.5, Florida 2 with a signed addendum); ``nonstandard_provision``: only under a signed\nnonstandard provision (Wisconsin). Every case is 'depends' (facts the request cannot state);\nthe cap limits the amount." - added
Output schema / $defs / LeaseBreakRule / properties / excludes_later_rentAdded value: +{ + "default": false, + "type": "boolean" +} - added
Output schema / $defs / LeaseBreakRule / properties / exclusion_quoteAdded value: +{ + "anyOf": [ + { + "maxLength": 400, + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / LeaseBreakRule / properties / exclusion_sectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / LeaseBreakRule / properties / keeps_retake_month_rentAdded value: +{ + "default": false, + "type": "boolean" +} - removed
Output schema / $defs / LeaseBreakRule / properties / months_rent / titleRemoved value: -"Months Rent" - removed
Output schema / $defs / LeaseBreakRule / properties / note / titleRemoved value: -"Note" - removed
Output schema / $defs / LeaseBreakRule / properties / quote / titleRemoved value: -"Quote" - removed
Output schema / $defs / LeaseBreakRule / properties / rule / titleRemoved value: -"Rule" - removed
Output schema / $defs / LeaseBreakRule / properties / section / titleRemoved value: -"Section" - removed
Output schema / $defs / LeaseBreakRule / properties / source / titleRemoved value: -"Source" - removed
Output schema / $defs / LeaseBreakRule / properties / verbatim / titleRemoved value: -"Verbatim" - removed
Output schema / $defs / LeaseBreakRule / titleRemoved value: -"LeaseBreakRule" - removed
Output schema / $defs / Links / descriptionRemoved value: -"Where the user gets files. MCP results only; the estimate itself is not stored." - removed
Output schema / $defs / Links / properties / downloads / descriptionRemoved value: -"Format -> URL. POST the property_turnover_scope arguments as JSON." - removed
Output schema / $defs / Links / properties / downloads / titleRemoved value: -"Downloads" - removed
Output schema / $defs / Links / properties / how_to_get_files / titleRemoved value: -"How To Get Files" - removed
Output schema / $defs / Links / properties / web_tool / descriptionRemoved value: -"The free web tool." - removed
Output schema / $defs / Links / properties / web_tool / titleRemoved value: -"Web Tool" - removed
Output schema / $defs / Links / properties / web_tool_prefilled / descriptionRemoved value: -"Opens the web tool with these inputs filled in and estimates them; the user can download the Excel workbook and owner estimate there. Give this link to the user." - removed
Output schema / $defs / Links / properties / web_tool_prefilled / titleRemoved value: -"Web Tool Prefilled" - removed
Output schema / $defs / Links / titleRemoved value: -"Links" - removed
Output schema / $defs / MoveInPhotos / descriptionRemoved value: -"Photos at the start of the tenancy, for tenancies beginning on or after ``tenancy_from``\n(California 1950.5(g)(1): 2025-07-01). Checked against ``documentation.photos_move_in``." - changed
Output schema / $defs / MoveInPhotos / properties / missing / enumPrevious value: -[ - "warn", - "depends" -]New value: +[ + "warn", + "depends", + "bars" +] - removed
Output schema / $defs / MoveInPhotos / properties / missing / titleRemoved value: -"Missing" - removed
Output schema / $defs / MoveInPhotos / properties / quote / titleRemoved value: -"Quote" - removed
Output schema / $defs / MoveInPhotos / properties / section / titleRemoved value: -"Section" - removed
Output schema / $defs / MoveInPhotos / properties / source / titleRemoved value: -"Source" - removed
Output schema / $defs / MoveInPhotos / properties / tenancy_from / titleRemoved value: -"Tenancy From" - removed
Output schema / $defs / MoveInPhotos / titleRemoved value: -"MoveInPhotos" - added
Output schema / $defs / MoveInStatementAdded value: +{ + "additionalProperties": false, + "properties": { + "missing": { + "default": "depends", + "enum": [ + "depends", + "bars", + "warn" + ], + "type": "string" + }, + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "quote": { + "maxLength": 400, + "type": "string" + }, + "rent_exempt": { + "default": false, + "type": "boolean" + }, + "scope": { + "default": "lines", + "enum": [ + "lines", + "all" + ], + "type": "string" + }, + "section": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "required": [ + "section", + "quote", + "source" + ], + "type": "object" +} - added
Output schema / $defs / MoveOutListAdded value: +{ + "additionalProperties": false, + "properties": { + "business_days": { + "exclusiveMinimum": 0, + "type": "integer" + }, + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "quote": { + "maxLength": 400, + "type": "string" + }, + "section": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "required": [ + "business_days", + "section", + "quote", + "source" + ], + "type": "object" +} - added
Output schema / $defs / NotIfAbandonedAdded value: +{ + "additionalProperties": false, + "properties": { + "quote": { + "maxLength": 400, + "type": "string" + }, + "section": { + "type": "string" + }, + "source": { + "type": "string" + } + }, + "required": [ + "section", + "quote", + "source" + ], + "type": "object" +} - removed
Output schema / $defs / Note / properties / code / titleRemoved value: -"Code" - removed
Output schema / $defs / Note / properties / text / titleRemoved value: -"Text" - removed
Output schema / $defs / Note / titleRemoved value: -"Note" - added
Output schema / $defs / PaymentMethodAdded value: +{ + "additionalProperties": false, + "properties": { + "days": { + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "effective_on": { + "format": "date", + "type": "string" + }, + "kind": { + "enum": [ + "electronic_after_notice", + "electronic_if_paid_electronically" + ], + "type": "string" + }, + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "section": { + "type": "string" + } + }, + "required": [ + "kind", + "effective_on", + "section" + ], + "type": "object" +} - added
Output schema / $defs / PenaltyRule / properties / baseAdded value: +{ + "default": "withheld", + "enum": [ + "withheld", + "wrongfully_withheld", + "entitled_balance", + "exceeds_damages" + ], + "type": "string" +} - added
Output schema / $defs / PenaltyRule / properties / base_highAdded value: +{ + "anyOf": [ + { + "enum": [ + "deposit", + "withheld" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / PenaltyRule / properties / base_if_no_statementAdded value: +{ + "anyOf": [ + { + "const": "deposit_less_claims", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / PenaltyRule / properties / basis / titleRemoved value: -"Basis" - changed
Output schema / $defs / PenaltyRule / properties / condition / enumPrevious value: -[ - "bad_faith", - "willful", - "any_late", - "late", - "any_violation", - "without_reasonable_basis", - "court_discretion" -]New value: +[ + "bad_faith", + "willful", + "any_late", + "late", + "any_violation", + "without_reasonable_basis", + "court_discretion", + "unpaid_annual_interest" +] - removed
Output schema / $defs / PenaltyRule / properties / condition / titleRemoved value: -"Condition" - added
Output schema / $defs / PenaltyRule / properties / credited_against_rentAdded value: +{ + "anyOf": [ + { + "enum": [ + "rent_due", + "rent_beyond_deposit" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / PenaltyRule / properties / discretionary / titleRemoved value: -"Discretionary" - removed
Output schema / $defs / PenaltyRule / properties / fixed_usd / titleRemoved value: -"Fixed Usd" - removed
Output schema / $defs / PenaltyRule / properties / forfeits_right_to_withhold_if_late / titleRemoved value: -"Forfeits Right To Withhold If Late" - added
Output schema / $defs / PenaltyRule / properties / interest_in_baseAdded value: +{ + "default": false, + "type": "boolean" +} - removed
Output schema / $defs / PenaltyRule / properties / kind / titleRemoved value: -"Kind" - added
Output schema / $defs / PenaltyRule / properties / late_refund_in_baseAdded value: +{ + "default": true, + "type": "boolean" +} - removed
Output schema / $defs / PenaltyRule / properties / max_months_rent / titleRemoved value: -"Max Months Rent" - removed
Output schema / $defs / PenaltyRule / properties / minimum_usd / titleRemoved value: -"Minimum Usd" - removed
Output schema / $defs / PenaltyRule / properties / multiple / titleRemoved value: -"Multiple" - added
Output schema / $defs / PenaltyRule / properties / multiple_if_statement_lateAdded value: +{ + "default": false, + "type": "boolean" +} - removed
Output schema / $defs / PenaltyRule / properties / multiple_is_additional / titleRemoved value: -"Multiple Is Additional" - added
Output schema / $defs / PenaltyRule / properties / no_statement_noteAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / PenaltyRule / properties / not_if_abandonedAdded value: +{ + "default": false, + "type": "boolean" +} - removed
Output schema / $defs / PenaltyRule / properties / note / titleRemoved value: -"Note" - removed
Output schema / $defs / PenaltyRule / properties / per_violation / titleRemoved value: -"Per Violation" - removed
Output schema / $defs / PenaltyRule / properties / plus_attorney_fees / titleRemoved value: -"Plus Attorney Fees" - added
Output schema / $defs / PenaltyRule / properties / safe_harborAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/SafeHarbor" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / PenaltyRule / titleRemoved value: -"PenaltyRule" - removed
Output schema / $defs / Photos / properties / effective_on / titleRemoved value: -"Effective On" - added
Output schema / $defs / Photos / properties / gate_noteAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / Photos / properties / kinds / titleRemoved value: -"Kinds" - changed
Output schema / $defs / Photos / properties / missing / enumPrevious value: -[ - "warn", - "depends" -]New value: +[ + "warn", + "depends", + "bars" +] - removed
Output schema / $defs / Photos / properties / missing / titleRemoved value: -"Missing" - removed
Output schema / $defs / Photos / properties / note / titleRemoved value: -"Note" - removed
Output schema / $defs / Photos / properties / required / titleRemoved value: -"Required" - added
Output schema / $defs / Photos / properties / scopeAdded value: +{ + "default": "lines", + "enum": [ + "lines", + "all" + ], + "type": "string" +} - added
Output schema / $defs / Photos / properties / threshold_usdAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / Photos / titleRemoved value: -"Photos" - removed
Output schema / $defs / Provenance / properties / rule_ids / titleRemoved value: -"Rule Ids" - removed
Output schema / $defs / Provenance / properties / ruleset_hash / titleRemoved value: -"Ruleset Hash" - removed
Output schema / $defs / Provenance / properties / ruleset_id / titleRemoved value: -"Ruleset Id" - removed
Output schema / $defs / Provenance / properties / ruleset_version / titleRemoved value: -"Ruleset Version" - removed
Output schema / $defs / Provenance / properties / sources / titleRemoved value: -"Sources" - removed
Output schema / $defs / Provenance / titleRemoved value: -"Provenance" - removed
Output schema / $defs / RateWindow / descriptionRemoved value: -"A published rate for a period (San Francisco's March-February year, a Berkeley move-out\nmonth, a Connecticut calendar year)." - removed
Output schema / $defs / RateWindow / properties / from / titleRemoved value: -"From" - removed
Output schema / $defs / RateWindow / properties / note / titleRemoved value: -"Note" - removed
Output schema / $defs / RateWindow / properties / rate_value / titleRemoved value: -"Rate Value" - removed
Output schema / $defs / RateWindow / properties / source / titleRemoved value: -"Source" - removed
Output schema / $defs / RateWindow / properties / to / titleRemoved value: -"To" - removed
Output schema / $defs / RateWindow / titleRemoved value: -"RateWindow" - added
Output schema / $defs / Receipts / properties / gate_noteAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - changed
Output schema / $defs / Receipts / properties / missing / enumPrevious value: -[ - "warn", - "depends" -]New value: +[ + "warn", + "depends", + "bars" +] - removed
Output schema / $defs / Receipts / properties / missing / titleRemoved value: -"Missing" - removed
Output schema / $defs / Receipts / properties / note / titleRemoved value: -"Note" - removed
Output schema / $defs / Receipts / properties / required / titleRemoved value: -"Required" - added
Output schema / $defs / Receipts / properties / scopeAdded value: +{ + "default": "lines", + "enum": [ + "lines", + "all" + ], + "type": "string" +} - removed
Output schema / $defs / Receipts / properties / threshold_usd / titleRemoved value: -"Threshold Usd" - removed
Output schema / $defs / Receipts / titleRemoved value: -"Receipts" - removed
Output schema / $defs / RentTier / descriptionRemoved value: -"A flat late-fee limit for rents up to ``max_rent_usd`` (Iowa: $60 a month up to $700)." - removed
Output schema / $defs / RentTier / properties / flat_usd / titleRemoved value: -"Flat Usd" - removed
Output schema / $defs / RentTier / properties / max_rent_usd / titleRemoved value: -"Max Rent Usd" - removed
Output schema / $defs / RentTier / titleRemoved value: -"RentTier" - removed
Output schema / $defs / ReturnRule / properties / alternatives / titleRemoved value: -"Alternatives" - removed
Output schema / $defs / ReturnRule / properties / counting / titleRemoved value: -"Counting" - removed
Output schema / $defs / ReturnRule / properties / days / titleRemoved value: -"Days" - added
Output schema / $defs / ReturnRule / properties / determination_daysAdded value: +{ + "anyOf": [ + { + "exclusiveMinimum": 0, + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / ReturnRule / properties / determination_sectionAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / ReturnRule / properties / fallbackAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/Fallback" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / ReturnRule / properties / gate / titleRemoved value: -"Gate" - removed
Output schema / $defs / ReturnRule / properties / gate_restarts / titleRemoved value: -"Gate Restarts" - removed
Output schema / $defs / ReturnRule / properties / holidays / titleRemoved value: -"Holidays" - removed
Output schema / $defs / ReturnRule / properties / months / titleRemoved value: -"Months" - added
Output schema / $defs / ReturnRule / properties / not_if_abandonedAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/NotIfAbandoned" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / ReturnRule / properties / payment_methodAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/PaymentMethod" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / ReturnRule / properties / rollover / titleRemoved value: -"Rollover" - added
Output schema / $defs / ReturnRule / properties / rollover_daysAdded value: +{ + "default": [ + "saturday", + "sunday", + "holiday" + ], + "items": { + "enum": [ + "saturday", + "sunday", + "holiday" + ], + "type": "string" + }, + "type": "array" +} - removed
Output schema / $defs / ReturnRule / properties / rollover_source / titleRemoved value: -"Rollover Source" - added
Output schema / $defs / ReturnRule / properties / rollover_unsettledAdded value: +{ + "default": false, + "type": "boolean" +} - removed
Output schema / $defs / ReturnRule / properties / start / titleRemoved value: -"Start" - removed
Output schema / $defs / ReturnRule / properties / start_note / titleRemoved value: -"Start Note" - removed
Output schema / $defs / ReturnRule / titleRemoved value: -"ReturnRule" - removed
Output schema / $defs / RulesResult / properties / citations / titleRemoved value: -"Citations" - removed
Output schema / $defs / RulesResult / properties / covered_cities / descriptionRemoved value: -"City overlays in this state ('Name, ST')." - removed
Output schema / $defs / RulesResult / properties / covered_cities / titleRemoved value: -"Covered Cities" - removed
Output schema / $defs / RulesResult / properties / covered_states / titleRemoved value: -"Covered States" - removed
Output schema / $defs / RulesResult / properties / disclaimer / titleRemoved value: -"Disclaimer" - removed
Output schema / $defs / RulesResult / properties / guides / descriptionRemoved value: -"Official plain-language guides for this state or city, where we have one." - removed
Output schema / $defs / RulesResult / properties / guides / titleRemoved value: -"Guides" - removed
Output schema / $defs / RulesResult / properties / research_notes / descriptionRemoved value: -"Research notes on the rows used: where the text was read, fetch failures, renumbering, history not checked. For checking the sourcing; not warnings." - removed
Output schema / $defs / RulesResult / properties / research_notes / titleRemoved value: -"Research Notes" - removed
Output schema / $defs / RulesResult / properties / small_claims / descriptionRemoved value: -"The state courts' small claims page, where we have one." - removed
Output schema / $defs / RulesResult / properties / summary / titleRemoved value: -"Summary" - removed
Output schema / $defs / RulesResult / properties / warnings / titleRemoved value: -"Warnings" - removed
Output schema / $defs / RulesResult / titleRemoved value: -"RulesResult" - removed
Output schema / $defs / RunInfo / properties / capability / titleRemoved value: -"Capability" - removed
Output schema / $defs / RunInfo / properties / contract_version / titleRemoved value: -"Contract Version" - removed
Output schema / $defs / RunInfo / properties / duration_ms / titleRemoved value: -"Duration Ms" - removed
Output schema / $defs / RunInfo / properties / engine_version / titleRemoved value: -"Engine Version" - removed
Output schema / $defs / RunInfo / properties / id / titleRemoved value: -"Id" - removed
Output schema / $defs / RunInfo / properties / operation / titleRemoved value: -"Operation" - removed
Output schema / $defs / RunInfo / properties / received_at / titleRemoved value: -"Received At" - removed
Output schema / $defs / RunInfo / properties / ruleset_hash / titleRemoved value: -"Ruleset Hash" - removed
Output schema / $defs / RunInfo / properties / ruleset_version / titleRemoved value: -"Ruleset Version" - removed
Output schema / $defs / RunInfo / titleRemoved value: -"RunInfo" - added
Output schema / $defs / SafeHarborAdded value: +{ + "additionalProperties": false, + "properties": { + "note": { + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "quote": { + "maxLength": 600, + "type": "string" + }, + "section": { + "type": "string" + }, + "source": { + "type": "string" + }, + "when": { + "const": "no_forwarding_address", + "default": "no_forwarding_address", + "type": "string" + } + }, + "required": [ + "section", + "quote", + "source" + ], + "type": "object" +} - removed
Output schema / $defs / StateRules / properties / applicability / titleRemoved value: -"Applicability" - removed
Output schema / $defs / StateRules / properties / deposit_cap_months_rent / titleRemoved value: -"Deposit Cap Months Rent" - removed
Output schema / $defs / StateRules / properties / forfeiture / titleRemoved value: -"Forfeiture" - removed
Output schema / $defs / StateRules / properties / notes / titleRemoved value: -"Notes" - removed
Output schema / $defs / StateRules / properties / recent_changes / titleRemoved value: -"Recent Changes" - removed
Output schema / $defs / StateRules / properties / statute / titleRemoved value: -"Statute" - removed
Output schema / $defs / StateRules / titleRemoved value: -"StateRules" - removed
Output schema / $defs / UnitTier / descriptionRemoved value: -"A percentage for buildings up to ``max_units`` (Texas: 12% up to four units)." - removed
Output schema / $defs / UnitTier / properties / max_units / titleRemoved value: -"Max Units" - removed
Output schema / $defs / UnitTier / properties / percent / titleRemoved value: -"Percent" - removed
Output schema / $defs / UnitTier / titleRemoved value: -"UnitTier" - removed
Output schema / $defs / UtilityLimit / descriptionRemoved value: -"Utility charges the statute lets the landlord deduct, by kind (Massachusetts: water only).\nA utility line is 'yes' for these kinds, 'no' for others, 'depends' when the kind is not\ngiven (``utility_kind`` on the line)." - removed
Output schema / $defs / UtilityLimit / properties / kinds / titleRemoved value: -"Kinds" - removed
Output schema / $defs / UtilityLimit / properties / quote / titleRemoved value: -"Quote" - removed
Output schema / $defs / UtilityLimit / properties / section / titleRemoved value: -"Section" - removed
Output schema / $defs / UtilityLimit / properties / source / titleRemoved value: -"Source" - removed
Output schema / $defs / UtilityLimit / titleRemoved value: -"UtilityLimit" - removed
Output schema / properties / client_refs / descriptionRemoved value: -"Your own ids, echoed when you sent client_refs." - removed
Output schema / properties / client_refs / titleRemoved value: -"Client Refs" - removed
Output schema / properties / input_hash / descriptionRemoved value: -"Only with audit=true." - removed
Output schema / properties / input_hash / titleRemoved value: -"Input Hash" - removed
Output schema / properties / result_hash / descriptionRemoved value: -"Only with audit=true." - removed
Output schema / properties / result_hash / titleRemoved value: -"Result Hash" - removed
Output schema / properties / run / descriptionRemoved value: -"Only with audit=true." - removed
Output schema / titleRemoved value: -"DepositSettlementRulesMcpResult"
- Changed
deposit_settlement_settle470 fields changed- changed
Input schema / $defs / Deduction / properties / amount_usd / anyOfPrevious value: -[ - { - "maximum": 10000000, - "minimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } -]New value: +[ + { + "maximum": 10000000, + "minimum": 0, + "type": "number" + }, + { + "pattern": "^\\$?[0-9][0-9,]*(\\.[0-9]+)?$", + "type": "string" + } +] - removed
Input schema / $defs / Deduction / properties / amount_usd / titleRemoved value: -"Amount Usd" - changed
Input schema / $defs / Deduction / properties / category / descriptionPrevious value: -"One of: unpaid_rent, unpaid_utilities, cleaning, carpet, flooring, paint, blinds_window_coverings, appliance, fixture_or_hardware, wall_or_door_repair, key_or_lock, late_fees, lease_break_fee, other_damage, other."New value: +"One of: unpaid_rent, unpaid_utilities, cleaning, carpet, flooring, paint, blinds_window_coverings, appliance, fixture_or_hardware, wall_or_door_repair, key_or_lock, late_fees, lease_break_fee, moving_and_storage, reletting_costs (advertising or a broker to re-rent after an early move-out), trash_and_abandoned_items (removing trash or belongings left behind), other_damage, other. Carpet cleaning is cleaning (with cleaning_kind), not carpet." - changed
Input schema / $defs / Deduction / properties / category / enumPrevious value: -[ - "unpaid_rent", - "unpaid_utilities", - "cleaning", - "carpet", - "flooring", - "paint", - "blinds_window_coverings", - "appliance", - "fixture_or_hardware", - "wall_or_door_repair", - "key_or_lock", - "late_fees", - "lease_break_fee", - "other_damage", - "other" -]New value: +[ + "unpaid_rent", + "unpaid_utilities", + "cleaning", + "carpet", + "flooring", + "paint", + "blinds_window_coverings", + "appliance", + "fixture_or_hardware", + "wall_or_door_repair", + "key_or_lock", + "late_fees", + "lease_break_fee", + "moving_and_storage", + "reletting_costs", + "trash_and_abandoned_items", + "other_damage", + "other" +] - removed
Input schema / $defs / Deduction / properties / category / titleRemoved value: -"Category" - removed
Input schema / $defs / Deduction / properties / caused_by_tenant / titleRemoved value: -"Caused By Tenant" - added
Input schema / $defs / Deduction / properties / cleaning_kindAdded value: +{ + "description": "cleaning only: beyond_wear (the unit was left dirtier than normal use; cleaning to restore its move-in condition), routine (ordinary cleaning after normal use, which most states treat as normal wear) or unknown. Where the statute does not name cleaning, an unknown kind is 'depends'.", + "enum": [ + "beyond_wear", + "routine", + "unknown" + ], + "type": "string" +} - removed
Input schema / $defs / Deduction / properties / description / anyOfRemoved value: -[ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Deduction / properties / description / defaultRemoved value: -null - added
Input schema / $defs / Deduction / properties / description / maxLengthAdded value: +200 - removed
Input schema / $defs / Deduction / properties / description / titleRemoved value: -"Description" - added
Input schema / $defs / Deduction / properties / description / typeAdded value: +"string" - removed
Input schema / $defs / Deduction / properties / has_photos / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Deduction / properties / has_photos / defaultRemoved value: -null - removed
Input schema / $defs / Deduction / properties / has_photos / titleRemoved value: -"Has Photos" - added
Input schema / $defs / Deduction / properties / has_photos / typeAdded value: +"boolean" - removed
Input schema / $defs / Deduction / properties / has_receipt / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Deduction / properties / has_receipt / defaultRemoved value: -null - removed
Input schema / $defs / Deduction / properties / has_receipt / titleRemoved value: -"Has Receipt" - added
Input schema / $defs / Deduction / properties / has_receipt / typeAdded value: +"boolean" - changed
Input schema / $defs / Deduction / properties / item_age_years / anyOfPrevious value: -[ - { - "maximum": 100, - "minimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maximum": 100, + "minimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + } +] - removed
Input schema / $defs / Deduction / properties / item_age_years / defaultRemoved value: -null - removed
Input schema / $defs / Deduction / properties / item_age_years / titleRemoved value: -"Item Age Years" - removed
Input schema / $defs / Deduction / properties / item_installed_on / anyOfRemoved value: -[ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Deduction / properties / item_installed_on / defaultRemoved value: -null - added
Input schema / $defs / Deduction / properties / item_installed_on / formatAdded value: +"date" - removed
Input schema / $defs / Deduction / properties / item_installed_on / titleRemoved value: -"Item Installed On" - added
Input schema / $defs / Deduction / properties / item_installed_on / typeAdded value: +"string" - removed
Input schema / $defs / Deduction / properties / late_payments / anyOfRemoved value: -[ - { - "maximum": 600, - "minimum": 1, - "type": "integer" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Deduction / properties / late_payments / defaultRemoved value: -null - added
Input schema / $defs / Deduction / properties / late_payments / maximumAdded value: +600 - added
Input schema / $defs / Deduction / properties / late_payments / minimumAdded value: +1 - removed
Input schema / $defs / Deduction / properties / late_payments / titleRemoved value: -"Late Payments" - added
Input schema / $defs / Deduction / properties / late_payments / typeAdded value: +"integer" - added
Input schema / $defs / Deduction / properties / rent_throughAdded value: +{ + "description": "unpaid_rent only: the last day the rent charged covers. With new_tenant_moved_in_on it decides how much of the rent overlaps the new tenancy (not recoverable: the landlord cannot collect rent twice for the same days).", + "format": "date", + "type": "string" +} - changed
Input schema / $defs / Deduction / properties / useful_life_years / anyOfPrevious value: -[ - { - "exclusiveMinimum": 0, - "maximum": 100, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "exclusiveMinimum": 0, + "maximum": 100, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + } +] - removed
Input schema / $defs / Deduction / properties / useful_life_years / defaultRemoved value: -null - removed
Input schema / $defs / Deduction / properties / useful_life_years / titleRemoved value: -"Useful Life Years" - removed
Input schema / $defs / Deduction / properties / utility_kind / anyOfRemoved value: -[ - { - "enum": [ - "water", - "sewer", - "electric", - "gas", - "heat", - "trash", - "internet", - "other" - ], - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Deduction / properties / utility_kind / defaultRemoved value: -null - added
Input schema / $defs / Deduction / properties / utility_kind / enumAdded value: +[ + "water", + "sewer", + "electric", + "gas", + "heat", + "trash", + "internet", + "other" +] - removed
Input schema / $defs / Deduction / properties / utility_kind / titleRemoved value: -"Utility Kind" - added
Input schema / $defs / Deduction / properties / utility_kind / typeAdded value: +"string" - added
Input schema / $defs / Deduction / properties / work_kindAdded value: +{ + "description": "repair (restores the item: never depreciated), replace (a new item: prorated by the old one's remaining life where the rule does), or cleaning (e.g. carpet cleaning: judged as a cleaning line).", + "enum": [ + "repair", + "replace", + "cleaning" + ], + "type": "string" +} - removed
Input schema / $defs / Deduction / titleRemoved value: -"Deduction" - added
Input schema / $defs / Documentation / properties / cleaning_noticeAdded value: +{ + "description": "You gave the tenant written notice of the cleaning needed and time to do it before charging for cleaning (Montana 70-25-201(3): 24 hours).", + "type": "boolean" +} - removed
Input schema / $defs / Documentation / properties / itemized_statement / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Documentation / properties / itemized_statement / defaultRemoved value: -null - removed
Input schema / $defs / Documentation / properties / itemized_statement / titleRemoved value: -"Itemized Statement" - added
Input schema / $defs / Documentation / properties / itemized_statement / typeAdded value: +"boolean" - added
Input schema / $defs / Documentation / properties / move_in_condition_statementAdded value: +{ + "description": "You gave the tenant a written move-in condition statement or checklist (Montana 70-25-206, Washington 59.18.260; listed as a duty in Georgia 44-7-33(a), Kentucky 383.580(2), Michigan 554.608 and Virginia 55.1-1214).", + "type": "boolean" +} - added
Input schema / $defs / Documentation / properties / move_out_listAdded value: +{ + "description": "You inspected the unit and made the move-out damage list in time (Georgia 44-7-33(b): within 3 business days).", + "type": "boolean" +} - removed
Input schema / $defs / Documentation / properties / photos_after_repair / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Documentation / properties / photos_after_repair / defaultRemoved value: -null - removed
Input schema / $defs / Documentation / properties / photos_after_repair / titleRemoved value: -"Photos After Repair" - added
Input schema / $defs / Documentation / properties / photos_after_repair / typeAdded value: +"boolean" - removed
Input schema / $defs / Documentation / properties / photos_move_in / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Documentation / properties / photos_move_in / defaultRemoved value: -null - removed
Input schema / $defs / Documentation / properties / photos_move_in / titleRemoved value: -"Photos Move In" - added
Input schema / $defs / Documentation / properties / photos_move_in / typeAdded value: +"boolean" - removed
Input schema / $defs / Documentation / properties / photos_move_out / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Documentation / properties / photos_move_out / defaultRemoved value: -null - removed
Input schema / $defs / Documentation / properties / photos_move_out / titleRemoved value: -"Photos Move Out" - added
Input schema / $defs / Documentation / properties / photos_move_out / typeAdded value: +"boolean" - removed
Input schema / $defs / Documentation / properties / receipts / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Documentation / properties / receipts / defaultRemoved value: -null - removed
Input schema / $defs / Documentation / properties / receipts / titleRemoved value: -"Receipts" - added
Input schema / $defs / Documentation / properties / receipts / typeAdded value: +"boolean" - removed
Input schema / $defs / Documentation / titleRemoved value: -"Documentation" - changed
Input schema / $defs / Returned / properties / amount_usd / anyOfPrevious value: -[ - { - "maximum": 10000000, - "minimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maximum": 10000000, + "minimum": 0, + "type": "number" + }, + { + "pattern": "^\\$?[0-9][0-9,]*(\\.[0-9]+)?$", + "type": "string" + } +] - removed
Input schema / $defs / Returned / properties / amount_usd / defaultRemoved value: -null - removed
Input schema / $defs / Returned / properties / amount_usd / titleRemoved value: -"Amount Usd" - added
Input schema / $defs / Returned / properties / methodAdded value: +{ + "description": "How the money went back: check, electronic (direct deposit or electronic transfer) or other. Some statutes key on it (Michigan 554.609(3): an electronic balance may follow the notice by 10 days; California 1950.5 as amended by AB 414: electronic return when the deposit or rent was paid electronically).", + "enum": [ + "check", + "electronic", + "other" + ], + "type": "string" +} - removed
Input schema / $defs / Returned / properties / on / anyOfRemoved value: -[ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Returned / properties / on / defaultRemoved value: -null - added
Input schema / $defs / Returned / properties / on / formatAdded value: +"date" - removed
Input schema / $defs / Returned / properties / on / titleRemoved value: -"On" - added
Input schema / $defs / Returned / properties / on / typeAdded value: +"string" - removed
Input schema / $defs / Returned / properties / what / titleRemoved value: -"What" - removed
Input schema / $defs / Returned / titleRemoved value: -"Returned" - removed
Input schema / properties / as_of / titleRemoved value: -"As Of" - removed
Input schema / properties / audit / titleRemoved value: -"Audit" - removed
Input schema / properties / building_units / anyOfRemoved value: -[ - { - "maximum": 100000, - "minimum": 1, - "type": "integer" - }, - { - "type": "null" - } -] - removed
Input schema / properties / building_units / defaultRemoved value: -null - added
Input schema / properties / building_units / maximumAdded value: +100000 - added
Input schema / properties / building_units / minimumAdded value: +1 - removed
Input schema / properties / building_units / titleRemoved value: -"Building Units" - added
Input schema / properties / building_units / typeAdded value: +"integer" - removed
Input schema / properties / city / anyOfRemoved value: -[ - { - "maxLength": 80, - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / properties / city / defaultRemoved value: -null - added
Input schema / properties / city / maxLengthAdded value: +80 - removed
Input schema / properties / city / titleRemoved value: -"City" - added
Input schema / properties / city / typeAdded value: +"string" - removed
Input schema / properties / claim_notice_sent_on / anyOfRemoved value: -[ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / properties / claim_notice_sent_on / defaultRemoved value: -null - added
Input schema / properties / claim_notice_sent_on / formatAdded value: +"date" - removed
Input schema / properties / claim_notice_sent_on / titleRemoved value: -"Claim Notice Sent On" - added
Input schema / properties / claim_notice_sent_on / typeAdded value: +"string" - added
Input schema / properties / client_refs / additionalPropertiesAdded value: +{ + "type": "string" +} - removed
Input schema / properties / client_refs / anyOfRemoved value: -[ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "type": "null" - } -] - removed
Input schema / properties / client_refs / defaultRemoved value: -null - removed
Input schema / properties / client_refs / titleRemoved value: -"Client Refs" - added
Input schema / properties / client_refs / typeAdded value: +"object" - removed
Input schema / properties / contractor_needed / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - removed
Input schema / properties / contractor_needed / defaultRemoved value: -null - removed
Input schema / properties / contractor_needed / titleRemoved value: -"Contractor Needed" - added
Input schema / properties / contractor_needed / typeAdded value: +"boolean" - changed
Input schema / properties / deductions / descriptionPrevious value: -"What you intend to deduct (or, for a tenant, what the landlord listed); may be empty."New value: +"What you intend to deduct (or, for a tenant, what the landlord listed). An explicit empty list means nothing is deducted (it decides the shorter no-deduction periods, e.g. Montana 10 days, Alaska 14); leave it out when that is not known yet." - removed
Input schema / properties / deductions / titleRemoved value: -"Deductions" - removed
Input schema / properties / demand_received_on / anyOfRemoved value: -[ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / properties / demand_received_on / defaultRemoved value: -null - added
Input schema / properties / demand_received_on / formatAdded value: +"date" - removed
Input schema / properties / demand_received_on / titleRemoved value: -"Demand Received On" - added
Input schema / properties / demand_received_on / typeAdded value: +"string" - added
Input schema / properties / deposit_collected_onAdded value: +{ + "description": "Day the deposit was collected (YYYY-MM-DD); defaults to move_in_on. California (AB 12, from 2024-07-01) and Colorado caps depend on it.", + "format": "date", + "type": "string" +} - removed
Input schema / properties / deposit_usd / titleRemoved value: -"Deposit Usd" - removed
Input schema / properties / forwarding_address_received_on / anyOfRemoved value: -[ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / properties / forwarding_address_received_on / defaultRemoved value: -null - added
Input schema / properties / forwarding_address_received_on / formatAdded value: +"date" - removed
Input schema / properties / forwarding_address_received_on / titleRemoved value: -"Forwarding Address Received On" - added
Input schema / properties / forwarding_address_received_on / typeAdded value: +"string" - added
Input schema / properties / furnishedAdded value: +{ + "description": "The unit is rented furnished (California before AB 12: 3 months; Kansas: 1.5 months; Delaware: no cap).", + "type": "boolean" +} - added
Input schema / properties / interest_paid_throughAdded value: +{ + "description": "Interest already paid or credited to the tenant up to this day (annual-payment rules: San Francisco, Los Angeles, Berkeley, Connecticut, Massachusetts, ...): interest is counted from it.", + "format": "date", + "type": "string" +} - added
Input schema / properties / interest_rate_percentAdded value: +{ + "anyOf": [ + { + "maximum": 25, + "minimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + } + ], + "description": "Annual rate the deposit account paid, where the law sets interest at the bank's rate (New Jersey, North Dakota, New Hampshire, New York, Pennsylvania, Portland), or caps it (Massachusetts: 5% or the bank's lesser rate). Without it bank-rate interest is unknown. Illinois 765 ILCS 715 uses IDFPR's published rate instead." +} - added
Input schema / properties / landlord_units_ownedAdded value: +{ + "description": "Rental units the landlord owns in all (Arkansas 5 or fewer, Georgia 10 or fewer, with third_party_managed, may be exempt).", + "minimum": 0, + "type": "integer" +} - added
Input schema / properties / lease_end_onAdded value: +{ + "description": "Day the lease was scheduled to end (YYYY-MM-DD), when it differs from when the tenancy actually ended (a broken lease). Lost rent and lease-break charges run to it; deadlines do not (they follow tenancy_ended_on, else the move-out, with the scheduled end as a later alternative).", + "format": "date", + "type": "string" +} - removed
Input schema / properties / lease_return_days / anyOfRemoved value: -[ - { - "maximum": 365, - "minimum": 0, - "type": "integer" - }, - { - "type": "null" - } -] - removed
Input schema / properties / lease_return_days / defaultRemoved value: -null - added
Input schema / properties / lease_return_days / maximumAdded value: +365 - added
Input schema / properties / lease_return_days / minimumAdded value: +0 - removed
Input schema / properties / lease_return_days / titleRemoved value: -"Lease Return Days" - added
Input schema / properties / lease_return_days / typeAdded value: +"integer" - added
Input schema / properties / lease_signed_or_renewed_onAdded value: +{ + "description": "Day the current lease was signed or last renewed (YYYY-MM-DD). Georgia (2024-07-01) and Maryland (2024-10-01) caps apply to leases from then; defaults to move_in_on, with a warning that a later renewal may bring the new cap.", + "format": "date", + "type": "string" +} - added
Input schema / properties / lease_term_monthsAdded value: +{ + "description": "Term of the lease in months (0 for month-to-month). Delaware's cap applies to leases of a year or more, New Mexico's to shorter ones.", + "maximum": 600, + "minimum": 0, + "type": "integer" +} - changed
Input schema / properties / monthly_rent_usd / anyOfPrevious value: -[ - { - "maximum": 10000000, - "minimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maximum": 10000000, + "minimum": 0, + "type": "number" + }, + { + "pattern": "^\\$?[0-9][0-9,]*(\\.[0-9]+)?$", + "type": "string" + } +] - removed
Input schema / properties / monthly_rent_usd / defaultRemoved value: -null - removed
Input schema / properties / monthly_rent_usd / titleRemoved value: -"Monthly Rent Usd" - removed
Input schema / properties / move_in_on / anyOfRemoved value: -[ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / properties / move_in_on / defaultRemoved value: -null - added
Input schema / properties / move_in_on / formatAdded value: +"date" - removed
Input schema / properties / move_in_on / titleRemoved value: -"Move In On" - added
Input schema / properties / move_in_on / typeAdded value: +"string" - removed
Input schema / properties / new_tenant_moved_in_on / anyOfRemoved value: -[ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / properties / new_tenant_moved_in_on / defaultRemoved value: -null - changed
Input schema / properties / new_tenant_moved_in_on / descriptionPrevious value: -"Day a new tenant moved in, if the unit was re-rented (YYYY-MM-DD). West Virginia and Wisconsin can end the period earlier."New value: +"Day a new tenant moved in, if the unit was re-rented (YYYY-MM-DD). West Virginia and Wisconsin can end the period earlier; rent claimed for days from it on is not recoverable (re-rent mitigation)." - added
Input schema / properties / new_tenant_moved_in_on / formatAdded value: +"date" - removed
Input schema / properties / new_tenant_moved_in_on / titleRemoved value: -"New Tenant Moved In On" - added
Input schema / properties / new_tenant_moved_in_on / typeAdded value: +"string" - added
Input schema / properties / new_tenant_rent_usdAdded value: +{ + "anyOf": [ + { + "maximum": 10000000, + "minimum": 0, + "type": "number" + }, + { + "pattern": "^\\$?[0-9][0-9,]*(\\.[0-9]+)?$", + "type": "string" + } + ], + "description": "Monthly rent the new tenant pays (with new_tenant_moved_in_on): the rent received for overlapping days is credited against rent claimed for them." +} - added
Input schema / properties / nonstandard_provision_signedAdded value: +{ + "description": "Wisconsin: the tenant signed a separate NONSTANDARD RENTAL PROVISIONS document covering the charge (ATCP 134.06(3)(b)); false makes such charges 'no'.", + "type": "boolean" +} - added
Input schema / properties / owner_occupiedAdded value: +{ + "description": "The landlord lives in the building (ME, NH, NJ and Chicago exempt small owner-occupied buildings; with building_units).", + "type": "boolean" +} - added
Input schema / properties / pet_deposit_usdAdded value: +{ + "anyOf": [ + { + "maximum": 10000000, + "minimum": 0, + "type": "number" + }, + { + "pattern": "^\\$?[0-9][0-9,]*(\\.[0-9]+)?$", + "type": "string" + } + ], + "description": "The part of deposit_usd that is a pet deposit (outside the cap in Missouri, Alabama, North Dakota and Saint Paul; allowed on top of it up to one month in Hawaii and Alaska, half a month in Kansas, a quarter in Nebraska)." +} - added
Input schema / properties / prepaid_rent_usdAdded value: +{ + "anyOf": [ + { + "maximum": 10000000, + "minimum": 0, + "type": "number" + }, + { + "pattern": "^\\$?[0-9][0-9,]*(\\.[0-9]+)?$", + "type": "string" + } + ], + "description": "Rent paid in advance beyond the first month, held besides deposit_usd. Counts toward the cap in AK, AZ, CA, CT, MD, MI and NY; earns interest in CT, MA (last month's rent), MD and Chicago; in Minneapolis it lowers the deposit cap to half a month." +} - added
Input schema / properties / rent_ordinance_coveredAdded value: +{ + "description": "The unit is covered by the city's rent ordinance (Los Angeles RSO, Berkeley Rent Ordinance). Their deposit interest is owed only then; unknown: the amount is shown beside the refund, not in it.", + "type": "boolean" +} - added
Input schema / properties / returned / $refAdded value: +"#/$defs/Returned" - removed
Input schema / properties / returned / anyOfRemoved value: -[ - { - "$ref": "#/$defs/Returned" - }, - { - "type": "null" - } -] - removed
Input schema / properties / returned / defaultRemoved value: -null - added
Input schema / properties / small_landlordAdded value: +{ + "description": "California AB 12 small landlord (a natural person or an LLC of natural persons owning at most two properties with at most four units; not for a service member): a two-month cap.", + "type": "boolean" +} - removed
Input schema / properties / state / titleRemoved value: -"State" - added
Input schema / properties / statement_sent_onAdded value: +{ + "description": "Day you sent (or delivered) the itemized statement (YYYY-MM-DD). With it the statement is judged on time or late; documentation.itemized_statement alone cannot tell.", + "format": "date", + "type": "string" +} - removed
Input schema / properties / tenancy_ended_on / anyOfRemoved value: -[ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / properties / tenancy_ended_on / defaultRemoved value: -null - changed
Input schema / properties / tenancy_ended_on / descriptionPrevious value: -"Lease end or termination date (YYYY-MM-DD), if different."New value: +"When the tenancy actually ended (YYYY-MM-DD): the lease's end, or an earlier termination or accepted surrender. Deadlines that run from the end of the tenancy use it. For a tenant who left before the lease was due to end, send the scheduled end as lease_end_on (older callers sent it here, which still works: the deadline is then counted from it, with the move-out date as an earlier alternative where the facts point to one)." - added
Input schema / properties / tenancy_ended_on / formatAdded value: +"date" - removed
Input schema / properties / tenancy_ended_on / titleRemoved value: -"Tenancy Ended On" - added
Input schema / properties / tenancy_ended_on / typeAdded value: +"string" - added
Input schema / properties / tenancy_typeAdded value: +{ + "description": "written_lease or at_will (Maine 6033(2): a written agreement's period, at most 30 days, or 21 days for a tenancy at will; Massachusetts 15B(4): at will, 30 days after the move-out, a written lease, 30 days after its end). Left out with a move-out before tenancy_ended_on: the earlier (at-will) date leads and the other is listed.", + "enum": [ + "written_lease", + "at_will" + ], + "type": "string" +} - added
Input schema / properties / tenant_abandonedAdded value: +{ + "description": "The tenant abandoned the unit or was evicted (Maryland 8-203(h): the clock runs from the tenant's written demand; Washington 59.18.280: from when the landlord learns of it; Louisiana 9:3251(C): the one-month rule does not apply). Left out: inferred from tenant_gave_proper_notice: false; with a move-out before tenancy_ended_on the earlier abandonment clock leads and the other date is listed.", + "type": "boolean" +} - added
Input schema / properties / tenant_age_60_plusAdded value: +{ + "description": "A person 60 or older occupies the unit (New Hampshire 540-A:5, I: the owner-occupied exemption does not reach the unit). tenant_age_62_plus true implies it.", + "type": "boolean" +} - added
Input schema / properties / tenant_age_62_plusAdded value: +{ + "description": "The tenant is 62 or older (Connecticut: a one-month cap).", + "type": "boolean" +} - added
Input schema / properties / tenant_gave_forwarding_addressAdded value: +{ + "description": "False when the tenant never gave a forwarding address in writing (not just 'not yet known'). Illinois, Pennsylvania, Ohio, Delaware, South Carolina and New Hampshire then relieve the landlord of the penalty. Implied true by forwarding_address_received_on.", + "type": "boolean" +} - removed
Input schema / properties / tenant_gave_proper_notice / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - removed
Input schema / properties / tenant_gave_proper_notice / defaultRemoved value: -null - removed
Input schema / properties / tenant_gave_proper_notice / titleRemoved value: -"Tenant Gave Proper Notice" - added
Input schema / properties / tenant_gave_proper_notice / typeAdded value: +"boolean" - added
Input schema / properties / third_party_managedAdded value: +{ + "description": "A third party manages the unit or collects rent for a fee.", + "type": "boolean" +} - removed
Input schema / properties / vacated_on / titleRemoved value: -"Vacated On" - removed
Input schema / titleRemoved value: -"deposit_settlement_settleArguments" - removed
Output schema / $defs / Citation / properties / accessed / titleRemoved value: -"Accessed" - removed
Output schema / $defs / Citation / properties / quote / descriptionRemoved value: -"Short quote of the rule (or our summary when verbatim is false)." - removed
Output schema / $defs / Citation / properties / quote / titleRemoved value: -"Quote" - removed
Output schema / $defs / Citation / properties / rule / descriptionRemoved value: -"What the citation supports: deadline, interest, penalty, ..." - removed
Output schema / $defs / Citation / properties / rule / titleRemoved value: -"Rule" - removed
Output schema / $defs / Citation / properties / section / titleRemoved value: -"Section" - removed
Output schema / $defs / Citation / properties / source_title / titleRemoved value: -"Source Title" - removed
Output schema / $defs / Citation / properties / url / titleRemoved value: -"Url" - removed
Output schema / $defs / Citation / properties / verbatim / titleRemoved value: -"Verbatim" - removed
Output schema / $defs / Citation / titleRemoved value: -"Citation" - added
Output schema / $defs / Deadline / properties / alternativesAdded value: +{ + "items": { + "$ref": "#/$defs/DeadlineAlternative" + }, + "type": "array" +} - removed
Output schema / $defs / Deadline / properties / counting / titleRemoved value: -"Counting" - removed
Output schema / $defs / Deadline / properties / days / descriptionRemoved value: -"Period in days (None: months or none)." - removed
Output schema / $defs / Deadline / properties / days / titleRemoved value: -"Days" - removed
Output schema / $defs / Deadline / properties / days_remaining / descriptionRemoved value: -"Days from as_of to return_by (negative when overdue)." - removed
Output schema / $defs / Deadline / properties / days_remaining / titleRemoved value: -"Days Remaining" - removed
Output schema / $defs / Deadline / properties / extended_to / descriptionRemoved value: -"Where the state's code rolls a last day on a weekend or holiday to the next business day: that later date. Act by return_by; this is the legal outer limit." - removed
Output schema / $defs / Deadline / properties / extended_to / titleRemoved value: -"Extended To" - added
Output schema / $defs / Deadline / properties / interest_due_byAdded value: +{ + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / Deadline / properties / itemization_by / descriptionRemoved value: -"Last day for the itemized statement (often the same day; earlier in Chicago, later in Louisiana)." - removed
Output schema / $defs / Deadline / properties / itemization_by / titleRemoved value: -"Itemization By" - removed
Output schema / $defs / Deadline / properties / months / descriptionRemoved value: -"Period in calendar months, if any." - removed
Output schema / $defs / Deadline / properties / months / titleRemoved value: -"Months" - removed
Output schema / $defs / Deadline / properties / note / titleRemoved value: -"Note" - removed
Output schema / $defs / Deadline / properties / return_by / descriptionRemoved value: -"Last day to return the deposit." - removed
Output schema / $defs / Deadline / properties / return_by / titleRemoved value: -"Return By" - removed
Output schema / $defs / Deadline / properties / start_date / titleRemoved value: -"Start Date" - removed
Output schema / $defs / Deadline / properties / start_event / descriptionRemoved value: -"What starts the clock, in words." - removed
Output schema / $defs / Deadline / properties / start_event / titleRemoved value: -"Start Event" - removed
Output schema / $defs / Deadline / properties / status / descriptionRemoved value: -"upcoming, due_today, overdue; not_started when the start event is not given yet; none_in_statute when the statute sets no deadline (Kentucky, Tennessee)." - changed
Output schema / $defs / Deadline / properties / status / enumPrevious value: -[ - "upcoming", - "due_today", - "overdue", - "not_started", - "none_in_statute" -]New value: +[ + "upcoming", + "due_today", + "overdue", + "not_started", + "none_in_statute", + "reverted", + "no_deposit", + "met", + "late" +] - removed
Output schema / $defs / Deadline / properties / status / titleRemoved value: -"Status" - removed
Output schema / $defs / Deadline / titleRemoved value: -"Deadline" - added
Output schema / $defs / DeadlineAlternativeAdded value: +{ + "properties": { + "applies_if": { + "type": "string" + }, + "on": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "send": { + "type": "string" + } + }, + "required": [ + "applies_if", + "send" + ], + "type": "object" +} - removed
Output schema / $defs / DeductionResult / properties / allowed / titleRemoved value: -"Allowed" - removed
Output schema / $defs / DeductionResult / properties / amount_allowed_usd / descriptionRemoved value: -"What the rule lets you keep for this line ('depends' lines: not counted in totals until you confirm)." - removed
Output schema / $defs / DeductionResult / properties / amount_allowed_usd / titleRemoved value: -"Amount Allowed Usd" - removed
Output schema / $defs / DeductionResult / properties / amount_claimed_usd / titleRemoved value: -"Amount Claimed Usd" - changed
Output schema / $defs / DeductionResult / properties / basis / enumPrevious value: -[ - "allowed_category", - "normal_wear", - "not_allowed", - "unclassified", - "forfeited" -]New value: +[ + "allowed_category", + "normal_wear", + "not_allowed", + "unclassified", + "forfeited", + "statutory_bar", + "mitigation", + "excluded_by_fee", + "documentation_missing" +] - removed
Output schema / $defs / DeductionResult / properties / basis / titleRemoved value: -"Basis" - changed
Output schema / $defs / DeductionResult / properties / category / enumPrevious value: -[ - "unpaid_rent", - "unpaid_utilities", - "cleaning", - "carpet", - "flooring", - "paint", - "blinds_window_coverings", - "appliance", - "fixture_or_hardware", - "wall_or_door_repair", - "key_or_lock", - "late_fees", - "lease_break_fee", - "other_damage", - "other" -]New value: +[ + "unpaid_rent", + "unpaid_utilities", + "cleaning", + "carpet", + "flooring", + "paint", + "blinds_window_coverings", + "appliance", + "fixture_or_hardware", + "wall_or_door_repair", + "key_or_lock", + "late_fees", + "lease_break_fee", + "moving_and_storage", + "reletting_costs", + "trash_and_abandoned_items", + "other_damage", + "other" +] - removed
Output schema / $defs / DeductionResult / properties / category / titleRemoved value: -"Category" - removed
Output schema / $defs / DeductionResult / properties / documentation_needed / titleRemoved value: -"Documentation Needed" - added
Output schema / $defs / DeductionResult / properties / exclusive_optionAdded value: +{ + "anyOf": [ + { + "enum": [ + "fee", + "actual" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / DeductionResult / properties / notes / titleRemoved value: -"Notes" - added
Output schema / $defs / DeductionResult / properties / range_high_usdAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / DeductionResult / properties / range_low_usdAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / DeductionResult / titleRemoved value: -"DeductionResult" - added
Output schema / $defs / DepositCapCheck / properties / alternative_cap_usdAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / DepositCapCheck / properties / cap_usd / titleRemoved value: -"Cap Usd" - removed
Output schema / $defs / DepositCapCheck / properties / citation / titleRemoved value: -"Citation" - added
Output schema / $defs / DepositCapCheck / properties / counted_usdAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / DepositCapCheck / properties / exceeded / titleRemoved value: -"Exceeded" - removed
Output schema / $defs / DepositCapCheck / properties / months_rent / descriptionRemoved value: -"None: no statutory cap." - removed
Output schema / $defs / DepositCapCheck / properties / months_rent / titleRemoved value: -"Months Rent" - removed
Output schema / $defs / DepositCapCheck / properties / note / titleRemoved value: -"Note" - added
Output schema / $defs / DepositCapCheck / properties / statusAdded value: +{ + "default": "unknown", + "enum": [ + "within", + "exceeded", + "depends", + "unknown", + "no_cap", + "not_applicable" + ], + "type": "string" +} - removed
Output schema / $defs / DepositCapCheck / properties / variants / descriptionRemoved value: -"Other caps by tenancy type or term; checked against the main." - removed
Output schema / $defs / DepositCapCheck / properties / variants / titleRemoved value: -"Variants" - removed
Output schema / $defs / DepositCapCheck / titleRemoved value: -"DepositCapCheck" - removed
Output schema / $defs / Depreciation / properties / age_years / descriptionRemoved value: -"Age at move-out: full calendar years plus remaining days / 365, 2 decimals." - removed
Output schema / $defs / Depreciation / properties / age_years / titleRemoved value: -"Age Years" - removed
Output schema / $defs / Depreciation / properties / applied / titleRemoved value: -"Applied" - removed
Output schema / $defs / Depreciation / properties / method / descriptionRemoved value: -"straight_line: max(0, 1 - age / useful life); step_table: the band of a published schedule for the item's age (California paint)." - removed
Output schema / $defs / Depreciation / properties / method / titleRemoved value: -"Method" - added
Output schema / $defs / Depreciation / properties / range_high_usdAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / Depreciation / properties / range_low_usdAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / Depreciation / properties / remaining_fraction / descriptionRemoved value: -"Share of the cost the tenant can be charged, 4 decimals." - removed
Output schema / $defs / Depreciation / properties / remaining_fraction / titleRemoved value: -"Remaining Fraction" - removed
Output schema / $defs / Depreciation / properties / schedule_source / descriptionRemoved value: -"Source id of the step table, when one was used." - removed
Output schema / $defs / Depreciation / properties / schedule_source / titleRemoved value: -"Schedule Source" - removed
Output schema / $defs / Depreciation / properties / source / descriptionRemoved value: -"useful_life row id (row:jurisdiction for a variant) or 'request'." - removed
Output schema / $defs / Depreciation / properties / source / titleRemoved value: -"Source" - removed
Output schema / $defs / Depreciation / properties / useful_life_years / titleRemoved value: -"Useful Life Years" - removed
Output schema / $defs / Depreciation / titleRemoved value: -"Depreciation" - removed
Output schema / $defs / DocumentationDuty / properties / citation / titleRemoved value: -"Citation" - added
Output schema / $defs / DocumentationDuty / properties / due_byAdded value: +{ + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - changed
Output schema / $defs / DocumentationDuty / properties / duty / enumPrevious value: -[ - "itemized_statement", - "receipts", - "photos", - "photos_move_in" -]New value: +[ + "itemized_statement", + "receipts", + "photos", + "photos_move_in", + "move_in_statement", + "move_out_list" +] - removed
Output schema / $defs / DocumentationDuty / properties / duty / titleRemoved value: -"Duty" - removed
Output schema / $defs / DocumentationDuty / properties / met / titleRemoved value: -"Met" - removed
Output schema / $defs / DocumentationDuty / properties / note / titleRemoved value: -"Note" - removed
Output schema / $defs / DocumentationDuty / properties / required / titleRemoved value: -"Required" - removed
Output schema / $defs / DocumentationDuty / properties / threshold / titleRemoved value: -"Threshold" - removed
Output schema / $defs / DocumentationDuty / titleRemoved value: -"DocumentationDuty" - removed
Output schema / $defs / ForfeitureCheck / descriptionRemoved value: -"A statute's forfeiture of the right to withhold, checked against the request." - removed
Output schema / $defs / ForfeitureCheck / properties / amount_released_usd / descriptionRemoved value: -"What those lines would otherwise have kept from the deposit." - removed
Output schema / $defs / ForfeitureCheck / properties / amount_released_usd / titleRemoved value: -"Amount Released Usd" - removed
Output schema / $defs / ForfeitureCheck / properties / citation / titleRemoved value: -"Citation" - removed
Output schema / $defs / ForfeitureCheck / properties / due_by / descriptionRemoved value: -"The date the duty had to be met by." - removed
Output schema / $defs / ForfeitureCheck / properties / due_by / titleRemoved value: -"Due By" - removed
Output schema / $defs / ForfeitureCheck / properties / gate / descriptionRemoved value: -"none, or the finding needed first (bad_faith, ...)." - removed
Output schema / $defs / ForfeitureCheck / properties / gate / titleRemoved value: -"Gate" - removed
Output schema / $defs / ForfeitureCheck / properties / keeps_claim / descriptionRemoved value: -"The charges can still be sued for separately." - removed
Output schema / $defs / ForfeitureCheck / properties / keeps_claim / titleRemoved value: -"Keeps Claim" - removed
Output schema / $defs / ForfeitureCheck / properties / lines / descriptionRemoved value: -"0-based deduction lines it bars (when met)." - removed
Output schema / $defs / ForfeitureCheck / properties / lines / titleRemoved value: -"Lines" - removed
Output schema / $defs / ForfeitureCheck / properties / note / titleRemoved value: -"Note" - removed
Output schema / $defs / ForfeitureCheck / properties / scope / descriptionRemoved value: -"all: every deduction; damage: damage and cleaning only." - removed
Output schema / $defs / ForfeitureCheck / properties / scope / titleRemoved value: -"Scope" - removed
Output schema / $defs / ForfeitureCheck / properties / status / descriptionRemoved value: -"met: the date passed without the statement or refund (or sending it now would be late), so the barred lines are not counted; not_yet: still time; not_started: the clock has not started; relieved: the statute excuses the duty here; unknown: turns on facts you did not give." - changed
Output schema / $defs / ForfeitureCheck / properties / status / enumPrevious value: -[ - "met", - "not_yet", - "not_started", - "relieved", - "unknown" -]New value: +[ + "met", + "not_yet", + "complied", + "not_started", + "relieved", + "unknown" +] - removed
Output schema / $defs / ForfeitureCheck / properties / status / titleRemoved value: -"Status" - removed
Output schema / $defs / ForfeitureCheck / properties / trigger / descriptionRemoved value: -"late_statement, late_return, late_statement_or_return, late_claim_notice or not_in_input (facts the request cannot state)." - removed
Output schema / $defs / ForfeitureCheck / properties / trigger / titleRemoved value: -"Trigger" - removed
Output schema / $defs / ForfeitureCheck / titleRemoved value: -"ForfeitureCheck" - removed
Output schema / $defs / Guide / descriptionRemoved value: -"An official plain-language resource for the state or city (an agency guide)." - removed
Output schema / $defs / Guide / properties / accessed / titleRemoved value: -"Accessed" - removed
Output schema / $defs / Guide / properties / publisher / titleRemoved value: -"Publisher" - removed
Output schema / $defs / Guide / properties / title / titleRemoved value: -"Title" - removed
Output schema / $defs / Guide / properties / url / titleRemoved value: -"Url" - removed
Output schema / $defs / Guide / titleRemoved value: -"Guide" - removed
Output schema / $defs / Interest / properties / amount_usd / titleRemoved value: -"Amount Usd" - removed
Output schema / $defs / Interest / properties / base_usd / descriptionRemoved value: -"The amount the rate applies to." - removed
Output schema / $defs / Interest / properties / base_usd / titleRemoved value: -"Base Usd" - removed
Output schema / $defs / Interest / properties / basis / descriptionRemoved value: -"What the rate applies to: deposit, or the excess (Ohio)." - removed
Output schema / $defs / Interest / properties / basis / titleRemoved value: -"Basis" - removed
Output schema / $defs / Interest / properties / citation / titleRemoved value: -"Citation" - removed
Output schema / $defs / Interest / properties / condition / titleRemoved value: -"Condition" - removed
Output schema / $defs / Interest / properties / formula / descriptionRemoved value: -"The source's formula, in words." - removed
Output schema / $defs / Interest / properties / formula / titleRemoved value: -"Formula" - added
Output schema / $defs / Interest / properties / if_required_usdAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / Interest / properties / method / descriptionRemoved value: -"simple, per_window, anniversary_years or monthly." - removed
Output schema / $defs / Interest / properties / method / titleRemoved value: -"Method" - removed
Output schema / $defs / Interest / properties / note / titleRemoved value: -"Note" - removed
Output schema / $defs / Interest / properties / parts / descriptionRemoved value: -"Per-period amounts when the rate changed." - removed
Output schema / $defs / Interest / properties / parts / titleRemoved value: -"Parts" - removed
Output schema / $defs / Interest / properties / period_days / titleRemoved value: -"Period Days" - removed
Output schema / $defs / Interest / properties / rate_percent / descriptionRemoved value: -"Percent per year (the move-out rate when rates change)." - removed
Output schema / $defs / Interest / properties / rate_percent / titleRemoved value: -"Rate Percent" - removed
Output schema / $defs / Interest / properties / required / descriptionRemoved value: -"None: depends on facts you did not give." - removed
Output schema / $defs / Interest / properties / required / titleRemoved value: -"Required" - removed
Output schema / $defs / Interest / titleRemoved value: -"Interest" - removed
Output schema / $defs / InterestPart / descriptionRemoved value: -"One period of an interest computation at one rate (a year, a rate window)." - removed
Output schema / $defs / InterestPart / properties / amount_usd / titleRemoved value: -"Amount Usd" - removed
Output schema / $defs / InterestPart / properties / period_from / titleRemoved value: -"Period From" - removed
Output schema / $defs / InterestPart / properties / period_to / titleRemoved value: -"Period To" - removed
Output schema / $defs / InterestPart / properties / rate_percent / titleRemoved value: -"Rate Percent" - removed
Output schema / $defs / InterestPart / titleRemoved value: -"InterestPart" - removed
Output schema / $defs / JurisdictionRef / properties / city / descriptionRemoved value: -"The city you sent, as given." - removed
Output schema / $defs / JurisdictionRef / properties / city / titleRemoved value: -"City" - removed
Output schema / $defs / JurisdictionRef / properties / city_overlay / descriptionRemoved value: -"The covered city whose rules were layered on, if any." - removed
Output schema / $defs / JurisdictionRef / properties / city_overlay / titleRemoved value: -"City Overlay" - added
Output schema / $defs / JurisdictionRef / properties / city_rules_checkedAdded value: +{ + "anyOf": [ + { + "type": "boolean" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / JurisdictionRef / properties / covered / titleRemoved value: -"Covered" - removed
Output schema / $defs / JurisdictionRef / properties / state / titleRemoved value: -"State" - removed
Output schema / $defs / JurisdictionRef / properties / state_name / titleRemoved value: -"State Name" - removed
Output schema / $defs / JurisdictionRef / properties / verified / descriptionRemoved value: -"True when the main rule text was read verbatim at the official source." - removed
Output schema / $defs / JurisdictionRef / properties / verified / titleRemoved value: -"Verified" - removed
Output schema / $defs / JurisdictionRef / titleRemoved value: -"JurisdictionRef" - removed
Output schema / $defs / Links / descriptionRemoved value: -"Where the user gets files. MCP results only; the estimate itself is not stored." - removed
Output schema / $defs / Links / properties / downloads / descriptionRemoved value: -"Format -> URL. POST the property_turnover_scope arguments as JSON." - removed
Output schema / $defs / Links / properties / downloads / titleRemoved value: -"Downloads" - removed
Output schema / $defs / Links / properties / how_to_get_files / titleRemoved value: -"How To Get Files" - removed
Output schema / $defs / Links / properties / web_tool / descriptionRemoved value: -"The free web tool." - removed
Output schema / $defs / Links / properties / web_tool / titleRemoved value: -"Web Tool" - removed
Output schema / $defs / Links / properties / web_tool_prefilled / descriptionRemoved value: -"Opens the web tool with these inputs filled in and estimates them; the user can download the Excel workbook and owner estimate there. Give this link to the user." - removed
Output schema / $defs / Links / properties / web_tool_prefilled / titleRemoved value: -"Web Tool Prefilled" - removed
Output schema / $defs / Links / titleRemoved value: -"Links" - removed
Output schema / $defs / Note / properties / code / titleRemoved value: -"Code" - removed
Output schema / $defs / Note / properties / text / titleRemoved value: -"Text" - removed
Output schema / $defs / Note / titleRemoved value: -"Note" - added
Output schema / $defs / OutcomeAdded value: +{ + "properties": { + "interest_unknown": { + "default": false, + "type": "boolean" + }, + "interest_usd": { + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "next_due": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "owed_now_min_usd": { + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "owed_now_usd": { + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "refund_due_usd": { + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + } + ] + }, + "refund_min_usd": { + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + } + ] + }, + "returned_usd": { + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "stages": { + "items": { + "$ref": "#/$defs/Stage" + }, + "type": "array" + }, + "status": { + "enum": [ + "upcoming", + "due_today", + "overdue", + "not_started", + "none_in_statute", + "reverted", + "no_deposit", + "met", + "late" + ], + "type": "string" + }, + "tenant_owes_usd": { + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + } + ] + }, + "uncertain": { + "items": { + "type": "string" + }, + "type": "array" + } + }, + "required": [ + "status", + "refund_due_usd", + "refund_min_usd", + "tenant_owes_usd" + ], + "type": "object" +} - removed
Output schema / $defs / PenaltyExposure / properties / additional / descriptionRemoved value: -"City penalties in addition to the state's (not included in its estimate)." - removed
Output schema / $defs / PenaltyExposure / properties / additional / titleRemoved value: -"Additional" - removed
Output schema / $defs / PenaltyExposure / properties / applies_if / titleRemoved value: -"Applies If" - added
Output schema / $defs / PenaltyExposure / properties / baseAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / PenaltyExposure / properties / basis / titleRemoved value: -"Basis" - removed
Output schema / $defs / PenaltyExposure / properties / citation / titleRemoved value: -"Citation" - removed
Output schema / $defs / PenaltyExposure / properties / discretionary / titleRemoved value: -"Discretionary" - removed
Output schema / $defs / PenaltyExposure / properties / estimated_max_usd / descriptionRemoved value: -"fixed + multiple x basis amount (with any floor or cap); exposure, not a verdict. None when the basis is unknown (monthly rent not given)." - removed
Output schema / $defs / PenaltyExposure / properties / estimated_max_usd / titleRemoved value: -"Estimated Max Usd" - added
Output schema / $defs / PenaltyExposure / properties / estimated_min_usdAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / PenaltyExposure / properties / fixed_usd / titleRemoved value: -"Fixed Usd" - added
Output schema / $defs / PenaltyExposure / properties / forfeits_right_to_withhold / anyOfAdded value: +[ + { + "type": "boolean" + }, + { + "type": "null" + } +] - removed
Output schema / $defs / PenaltyExposure / properties / forfeits_right_to_withhold / titleRemoved value: -"Forfeits Right To Withhold" - removed
Output schema / $defs / PenaltyExposure / properties / forfeits_right_to_withhold / typeRemoved value: -"boolean" - removed
Output schema / $defs / PenaltyExposure / properties / in_addition_to_refund / descriptionRemoved value: -"The damages come on top of returning the amount withheld (Ohio, West Virginia), not instead of it." - removed
Output schema / $defs / PenaltyExposure / properties / in_addition_to_refund / titleRemoved value: -"In Addition To Refund" - removed
Output schema / $defs / PenaltyExposure / properties / kind / titleRemoved value: -"Kind" - removed
Output schema / $defs / PenaltyExposure / properties / minimum_usd / descriptionRemoved value: -"Floor of the multiple." - removed
Output schema / $defs / PenaltyExposure / properties / minimum_usd / titleRemoved value: -"Minimum Usd" - removed
Output schema / $defs / PenaltyExposure / properties / multiple / titleRemoved value: -"Multiple" - removed
Output schema / $defs / PenaltyExposure / properties / note / titleRemoved value: -"Note" - removed
Output schema / $defs / PenaltyExposure / properties / per_violation / descriptionRemoved value: -"fixed_usd is per violation." - removed
Output schema / $defs / PenaltyExposure / properties / per_violation / titleRemoved value: -"Per Violation" - removed
Output schema / $defs / PenaltyExposure / properties / plus_attorney_fees / titleRemoved value: -"Plus Attorney Fees" - removed
Output schema / $defs / PenaltyExposure / titleRemoved value: -"PenaltyExposure" - removed
Output schema / $defs / Provenance / properties / rule_ids / titleRemoved value: -"Rule Ids" - removed
Output schema / $defs / Provenance / properties / ruleset_hash / titleRemoved value: -"Ruleset Hash" - removed
Output schema / $defs / Provenance / properties / ruleset_id / titleRemoved value: -"Ruleset Id" - removed
Output schema / $defs / Provenance / properties / ruleset_version / titleRemoved value: -"Ruleset Version" - removed
Output schema / $defs / Provenance / properties / sources / titleRemoved value: -"Sources" - removed
Output schema / $defs / Provenance / titleRemoved value: -"Provenance" - removed
Output schema / $defs / RunInfo / properties / capability / titleRemoved value: -"Capability" - removed
Output schema / $defs / RunInfo / properties / contract_version / titleRemoved value: -"Contract Version" - removed
Output schema / $defs / RunInfo / properties / duration_ms / titleRemoved value: -"Duration Ms" - removed
Output schema / $defs / RunInfo / properties / engine_version / titleRemoved value: -"Engine Version" - removed
Output schema / $defs / RunInfo / properties / id / titleRemoved value: -"Id" - removed
Output schema / $defs / RunInfo / properties / operation / titleRemoved value: -"Operation" - removed
Output schema / $defs / RunInfo / properties / received_at / titleRemoved value: -"Received At" - removed
Output schema / $defs / RunInfo / properties / ruleset_hash / titleRemoved value: -"Ruleset Hash" - removed
Output schema / $defs / RunInfo / properties / ruleset_version / titleRemoved value: -"Ruleset Version" - removed
Output schema / $defs / RunInfo / titleRemoved value: -"RunInfo" - removed
Output schema / $defs / SettleResult / properties / as_of / titleRemoved value: -"As Of" - removed
Output schema / $defs / SettleResult / properties / assumptions / titleRemoved value: -"Assumptions" - removed
Output schema / $defs / SettleResult / properties / citations / titleRemoved value: -"Citations" - removed
Output schema / $defs / SettleResult / properties / deductions / titleRemoved value: -"Deductions" - removed
Output schema / $defs / SettleResult / properties / disclaimer / titleRemoved value: -"Disclaimer" - removed
Output schema / $defs / SettleResult / properties / documentation / titleRemoved value: -"Documentation" - removed
Output schema / $defs / SettleResult / properties / forfeiture / descriptionRemoved value: -"The statute's forfeitures of the right to withhold, checked; a met one has already taken its lines out of the totals." - removed
Output schema / $defs / SettleResult / properties / forfeiture / titleRemoved value: -"Forfeiture" - removed
Output schema / $defs / SettleResult / properties / guides / descriptionRemoved value: -"Official plain-language guides for this state or city, where we have one." - removed
Output schema / $defs / SettleResult / properties / guides / titleRemoved value: -"Guides" - added
Output schema / $defs / SettleResult / properties / outcomeAdded value: +{ + "anyOf": [ + { + "$ref": "#/$defs/Outcome" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / SettleResult / properties / small_claims / descriptionRemoved value: -"The state courts' small claims page, where we have one." - removed
Output schema / $defs / SettleResult / properties / summary / titleRemoved value: -"Summary" - removed
Output schema / $defs / SettleResult / properties / timeliness / descriptionRemoved value: -"Present when the request says what was returned (returned)." - removed
Output schema / $defs / SettleResult / properties / unknowns / titleRemoved value: -"Unknowns" - removed
Output schema / $defs / SettleResult / properties / warnings / titleRemoved value: -"Warnings" - removed
Output schema / $defs / SettleResult / titleRemoved value: -"SettleResult" - added
Output schema / $defs / StageAdded value: +{ + "properties": { + "days": { + "anyOf": [ + { + "type": "integer" + }, + { + "type": "null" + } + ], + "default": null + }, + "done_on": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "due_by": { + "anyOf": [ + { + "format": "date", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null + }, + "duty": { + "enum": [ + "itemized_statement", + "refund", + "interest" + ], + "type": "string" + }, + "label": { + "type": "string" + }, + "status": { + "enum": [ + "met", + "late", + "short", + "overdue", + "due_today", + "upcoming", + "not_started", + "none_in_statute" + ], + "type": "string" + } + }, + "required": [ + "duty", + "label", + "status" + ], + "type": "object" +} - removed
Output schema / $defs / Statement / properties / due_by / titleRemoved value: -"Due By" - removed
Output schema / $defs / Statement / properties / lines / titleRemoved value: -"Lines" - removed
Output schema / $defs / Statement / properties / refund_due_usd / titleRemoved value: -"Refund Due Usd" - removed
Output schema / $defs / Statement / properties / text / descriptionRemoved value: -"Draft itemized statement, plain text, no names or addresses." - removed
Output schema / $defs / Statement / properties / text / titleRemoved value: -"Text" - removed
Output schema / $defs / Statement / titleRemoved value: -"Statement" - removed
Output schema / $defs / StatementLine / properties / amount_usd / titleRemoved value: -"Amount Usd" - removed
Output schema / $defs / StatementLine / properties / label / titleRemoved value: -"Label" - removed
Output schema / $defs / StatementLine / properties / note / titleRemoved value: -"Note" - removed
Output schema / $defs / StatementLine / titleRemoved value: -"StatementLine" - removed
Output schema / $defs / Timeliness / descriptionRemoved value: -"Whether what the landlord returned (``returned``) came on time." - removed
Output schema / $defs / Timeliness / properties / amount_kept_usd / descriptionRemoved value: -"Deposit minus the amount returned (what is withheld)." - removed
Output schema / $defs / Timeliness / properties / amount_kept_usd / titleRemoved value: -"Amount Kept Usd" - removed
Output schema / $defs / Timeliness / properties / amount_returned_usd / titleRemoved value: -"Amount Returned Usd" - removed
Output schema / $defs / Timeliness / properties / checks / titleRemoved value: -"Checks" - removed
Output schema / $defs / Timeliness / properties / days_late / descriptionRemoved value: -"Days late (the most of any duty; with nothing returned, the days since the last way of meeting the rule passed)." - removed
Output schema / $defs / Timeliness / properties / days_late / titleRemoved value: -"Days Late" - removed
Output schema / $defs / Timeliness / properties / difference_min_usd / descriptionRemoved value: -"The same against totals.refund_min_usd." - removed
Output schema / $defs / Timeliness / properties / difference_min_usd / titleRemoved value: -"Difference Min Usd" - removed
Output schema / $defs / Timeliness / properties / difference_usd / descriptionRemoved value: -"totals.refund_due_usd minus the amount returned (positive: less came back than the rule's refund on the deductions given)." - removed
Output schema / $defs / Timeliness / properties / difference_usd / titleRemoved value: -"Difference Usd" - removed
Output schema / $defs / Timeliness / properties / late / descriptionRemoved value: -"True: a duty is late or overdue (with nothing returned: every way the rule can be met has passed). False: on time or not yet due. None: no deadline, or the clock has not started." - removed
Output schema / $defs / Timeliness / properties / late / titleRemoved value: -"Late" - removed
Output schema / $defs / Timeliness / properties / late_since / descriptionRemoved value: -"With nothing returned: the day from which it is late." - removed
Output schema / $defs / Timeliness / properties / late_since / titleRemoved value: -"Late Since" - removed
Output schema / $defs / Timeliness / properties / note / titleRemoved value: -"Note" - removed
Output schema / $defs / Timeliness / properties / on / titleRemoved value: -"On" - removed
Output schema / $defs / Timeliness / properties / what / titleRemoved value: -"What" - removed
Output schema / $defs / Timeliness / titleRemoved value: -"Timeliness" - removed
Output schema / $defs / TimelyCheck / descriptionRemoved value: -"One duty checked against its deadline: the refund, or the itemized statement." - removed
Output schema / $defs / TimelyCheck / properties / days_late / descriptionRemoved value: -"Days after due_by (late, or overdue as of as_of)." - removed
Output schema / $defs / TimelyCheck / properties / days_late / titleRemoved value: -"Days Late" - removed
Output schema / $defs / TimelyCheck / properties / days_left / descriptionRemoved value: -"Days until due_by (not_yet_due)." - removed
Output schema / $defs / TimelyCheck / properties / days_left / titleRemoved value: -"Days Left" - removed
Output schema / $defs / TimelyCheck / properties / done_on / descriptionRemoved value: -"When it was sent; None: not yet." - removed
Output schema / $defs / TimelyCheck / properties / done_on / titleRemoved value: -"Done On" - removed
Output schema / $defs / TimelyCheck / properties / due_by / descriptionRemoved value: -"Last day under the rule, with the statute's weekend or holiday roll-forward applied (the legal limit)." - removed
Output schema / $defs / TimelyCheck / properties / due_by / titleRemoved value: -"Due By" - changed
Output schema / $defs / TimelyCheck / properties / duty / enumPrevious value: -[ - "refund", - "itemized_statement" -]New value: +[ + "refund", + "itemized_statement", + "interest" +] - removed
Output schema / $defs / TimelyCheck / properties / duty / titleRemoved value: -"Duty" - removed
Output schema / $defs / TimelyCheck / properties / note / titleRemoved value: -"Note" - removed
Output schema / $defs / TimelyCheck / properties / status / descriptionRemoved value: -"on_time / late (done, by or after due_by); not_yet_due / overdue (not done as of as_of); not_started (the start event is missing); none_in_statute." - removed
Output schema / $defs / TimelyCheck / properties / status / titleRemoved value: -"Status" - removed
Output schema / $defs / TimelyCheck / titleRemoved value: -"TimelyCheck" - removed
Output schema / $defs / Totals / properties / allowed_usd / descriptionRemoved value: -"Sum of lines with allowed = yes." - removed
Output schema / $defs / Totals / properties / allowed_usd / titleRemoved value: -"Allowed Usd" - removed
Output schema / $defs / Totals / properties / claimed_usd / titleRemoved value: -"Claimed Usd" - added
Output schema / $defs / Totals / properties / counted_floor_usdAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + } + ], + "default": "0.00" +} - removed
Output schema / $defs / Totals / properties / depends_usd / descriptionRemoved value: -"Sum of 'depends' lines at the amount the rule would allow if they stand (not in allowed_usd or the refund)." - removed
Output schema / $defs / Totals / properties / depends_usd / titleRemoved value: -"Depends Usd" - removed
Output schema / $defs / Totals / properties / deposit_usd / titleRemoved value: -"Deposit Usd" - changed
Output schema / $defs / Totals / properties / interest_usd / anyOfPrevious value: -[ - { - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - } -]New value: +[ + { + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } +] - added
Output schema / $defs / Totals / properties / interest_usd / defaultAdded value: +null - removed
Output schema / $defs / Totals / properties / interest_usd / descriptionRemoved value: -"Interest credited (0 when none or unknown)." - removed
Output schema / $defs / Totals / properties / interest_usd / titleRemoved value: -"Interest Usd" - removed
Output schema / $defs / Totals / properties / refund_due_usd / descriptionRemoved value: -"deposit + interest - allowed, never below 0." - removed
Output schema / $defs / Totals / properties / refund_due_usd / titleRemoved value: -"Refund Due Usd" - removed
Output schema / $defs / Totals / properties / refund_min_usd / descriptionRemoved value: -"The refund if every 'depends' line stands: deposit + interest - allowed - depends, never below 0. Equals refund_due_usd when nothing depends." - removed
Output schema / $defs / Totals / properties / refund_min_usd / titleRemoved value: -"Refund Min Usd" - removed
Output schema / $defs / Totals / properties / tenant_owes_usd / descriptionRemoved value: -"Allowed deductions above deposit + interest (collect separately)." - removed
Output schema / $defs / Totals / properties / tenant_owes_usd / titleRemoved value: -"Tenant Owes Usd" - changed
Output schema / $defs / Totals / requiredPrevious value: -[ - "deposit_usd", - "claimed_usd", - "allowed_usd", - "interest_usd", - "refund_due_usd", - "tenant_owes_usd" -]New value: +[ + "deposit_usd", + "claimed_usd", + "allowed_usd", + "refund_due_usd", + "tenant_owes_usd" +] - removed
Output schema / $defs / Totals / titleRemoved value: -"Totals" - removed
Output schema / properties / client_refs / descriptionRemoved value: -"Your own ids, echoed when you sent client_refs." - removed
Output schema / properties / client_refs / titleRemoved value: -"Client Refs" - removed
Output schema / properties / input_hash / descriptionRemoved value: -"Only with audit=true." - removed
Output schema / properties / input_hash / titleRemoved value: -"Input Hash" - removed
Output schema / properties / result_hash / descriptionRemoved value: -"Only with audit=true." - removed
Output schema / properties / result_hash / titleRemoved value: -"Result Hash" - removed
Output schema / properties / run / descriptionRemoved value: -"Only with audit=true." - removed
Output schema / titleRemoved value: -"DepositSettlementSettleMcpResult"
- Changed
property_turnover_issue_codes57 fields changed- removed
Input schema / properties / area / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / properties / area / defaultRemoved value: -null - removed
Input schema / properties / area / titleRemoved value: -"Area" - added
Input schema / properties / area / typeAdded value: +"string" - removed
Input schema / properties / audit / titleRemoved value: -"Audit" - added
Input schema / properties / client_refs / additionalPropertiesAdded value: +{ + "type": "string" +} - removed
Input schema / properties / client_refs / anyOfRemoved value: -[ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "type": "null" - } -] - removed
Input schema / properties / client_refs / defaultRemoved value: -null - removed
Input schema / properties / client_refs / titleRemoved value: -"Client Refs" - added
Input schema / properties / client_refs / typeAdded value: +"object" - removed
Input schema / properties / include_aliases / titleRemoved value: -"Include Aliases" - removed
Input schema / properties / limit / titleRemoved value: -"Limit" - removed
Input schema / properties / query / anyOfRemoved value: -[ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / properties / query / defaultRemoved value: -null - added
Input schema / properties / query / maxLengthAdded value: +200 - removed
Input schema / properties / query / titleRemoved value: -"Query" - added
Input schema / properties / query / typeAdded value: +"string" - removed
Input schema / titleRemoved value: -"property_turnover_issue_codesArguments" - removed
Output schema / $defs / IssueCode / properties / aliases / titleRemoved value: -"Aliases" - removed
Output schema / $defs / IssueCode / properties / area / titleRemoved value: -"Area" - removed
Output schema / $defs / IssueCode / properties / code / descriptionRemoved value: -"Stable code, component.issue, e.g. 'carpet.pet_urine'." - removed
Output schema / $defs / IssueCode / properties / code / titleRemoved value: -"Code" - removed
Output schema / $defs / IssueCode / properties / name / titleRemoved value: -"Name" - removed
Output schema / $defs / IssueCode / titleRemoved value: -"IssueCode" - removed
Output schema / $defs / IssueCodesResult / properties / areas / descriptionRemoved value: -"Every taxonomy area, for the `area` filter (e.g. 'flooring', 'walls')." - removed
Output schema / $defs / IssueCodesResult / properties / areas / titleRemoved value: -"Areas" - removed
Output schema / $defs / IssueCodesResult / properties / codes / titleRemoved value: -"Codes" - removed
Output schema / $defs / IssueCodesResult / properties / ruleset_version / titleRemoved value: -"Ruleset Version" - removed
Output schema / $defs / IssueCodesResult / properties / total_matches / titleRemoved value: -"Total Matches" - removed
Output schema / $defs / IssueCodesResult / titleRemoved value: -"IssueCodesResult" - removed
Output schema / $defs / Links / descriptionRemoved value: -"Where the user gets files. MCP results only; the estimate itself is not stored." - removed
Output schema / $defs / Links / properties / downloads / descriptionRemoved value: -"Format -> URL. POST the property_turnover_scope arguments as JSON." - removed
Output schema / $defs / Links / properties / downloads / titleRemoved value: -"Downloads" - removed
Output schema / $defs / Links / properties / how_to_get_files / titleRemoved value: -"How To Get Files" - removed
Output schema / $defs / Links / properties / web_tool / descriptionRemoved value: -"The free web tool." - removed
Output schema / $defs / Links / properties / web_tool / titleRemoved value: -"Web Tool" - removed
Output schema / $defs / Links / properties / web_tool_prefilled / descriptionRemoved value: -"Opens the web tool with these inputs filled in and estimates them; the user can download the Excel workbook and owner estimate there. Give this link to the user." - removed
Output schema / $defs / Links / properties / web_tool_prefilled / titleRemoved value: -"Web Tool Prefilled" - removed
Output schema / $defs / Links / titleRemoved value: -"Links" - removed
Output schema / $defs / RunInfo / properties / capability / titleRemoved value: -"Capability" - removed
Output schema / $defs / RunInfo / properties / contract_version / titleRemoved value: -"Contract Version" - removed
Output schema / $defs / RunInfo / properties / duration_ms / titleRemoved value: -"Duration Ms" - removed
Output schema / $defs / RunInfo / properties / engine_version / titleRemoved value: -"Engine Version" - removed
Output schema / $defs / RunInfo / properties / id / titleRemoved value: -"Id" - removed
Output schema / $defs / RunInfo / properties / operation / titleRemoved value: -"Operation" - removed
Output schema / $defs / RunInfo / properties / received_at / titleRemoved value: -"Received At" - removed
Output schema / $defs / RunInfo / properties / ruleset_hash / titleRemoved value: -"Ruleset Hash" - removed
Output schema / $defs / RunInfo / properties / ruleset_version / titleRemoved value: -"Ruleset Version" - removed
Output schema / $defs / RunInfo / titleRemoved value: -"RunInfo" - removed
Output schema / properties / client_refs / descriptionRemoved value: -"Your own ids, echoed when you sent client_refs." - removed
Output schema / properties / client_refs / titleRemoved value: -"Client Refs" - removed
Output schema / properties / input_hash / descriptionRemoved value: -"Only with audit=true." - removed
Output schema / properties / input_hash / titleRemoved value: -"Input Hash" - removed
Output schema / properties / result_hash / descriptionRemoved value: -"Only with audit=true." - removed
Output schema / properties / result_hash / titleRemoved value: -"Result Hash" - removed
Output schema / properties / run / descriptionRemoved value: -"Only with audit=true." - removed
Output schema / titleRemoved value: -"PropertyTurnoverIssueCodesMcpResult"
- Changed
property_turnover_quick_estimate188 fields changed- removed
Input schema / $defs / PriceTier / titleRemoved value: -"PriceTier" - removed
Input schema / $defs / Profile / titleRemoved value: -"Profile" - removed
Input schema / $defs / UnitType / titleRemoved value: -"UnitType" - removed
Input schema / properties / audit / titleRemoved value: -"Audit" - removed
Input schema / properties / bathrooms / titleRemoved value: -"Bathrooms" - removed
Input schema / properties / bedrooms / titleRemoved value: -"Bedrooms" - removed
Input schema / properties / carpet / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - removed
Input schema / properties / carpet / defaultRemoved value: -null - removed
Input schema / properties / carpet / titleRemoved value: -"Carpet" - added
Input schema / properties / carpet / typeAdded value: +"boolean" - added
Input schema / properties / client_refs / additionalPropertiesAdded value: +{ + "type": "string" +} - removed
Input schema / properties / client_refs / anyOfRemoved value: -[ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "type": "null" - } -] - removed
Input schema / properties / client_refs / defaultRemoved value: -null - removed
Input schema / properties / client_refs / titleRemoved value: -"Client Refs" - added
Input schema / properties / client_refs / typeAdded value: +"object" - removed
Input schema / properties / detail / titleRemoved value: -"Detail" - changed
Input schema / properties / issues / descriptionPrevious value: -"What was found, one plain-English item per entry, e.g. ['stained carpet in both bedrooms', 'nail holes everywhere', 'oven is filthy']. A room at the start sets the location ('Bedroom 2 carpet torn')."New value: +"What was found in plain English, e.g. ['stained carpet in both bedrooms', 'nail holes everywhere', 'oven is filthy']. Read like pasted notes: an entry may hold several conditions ('carpet stained, nail holes'; one finding each); a room before or after the condition sets the location ('Bedroom 2 carpet torn', 'mold in bathroom'); a written count sets the quantity ('3 blinds broken'); an entry saying there is no work ('no mold', 'leak fixed by tenant') is reported as not billed." - removed
Input schema / properties / issues / titleRemoved value: -"Issues" - removed
Input schema / properties / sq_ft / anyOfRemoved value: -[ - { - "maximum": 20000, - "minimum": 150, - "type": "integer" - }, - { - "type": "null" - } -] - removed
Input schema / properties / sq_ft / defaultRemoved value: -null - added
Input schema / properties / sq_ft / maximumAdded value: +20000 - added
Input schema / properties / sq_ft / minimumAdded value: +150 - removed
Input schema / properties / sq_ft / titleRemoved value: -"Sq Ft" - added
Input schema / properties / sq_ft / typeAdded value: +"integer" - removed
Input schema / properties / year_built / anyOfRemoved value: -[ - { - "maximum": 2100, - "minimum": 1700, - "type": "integer" - }, - { - "type": "null" - } -] - removed
Input schema / properties / year_built / defaultRemoved value: -null - added
Input schema / properties / year_built / maximumAdded value: +2100 - added
Input schema / properties / year_built / minimumAdded value: +1700 - removed
Input schema / properties / year_built / titleRemoved value: -"Year Built" - added
Input schema / properties / year_built / typeAdded value: +"integer" - removed
Input schema / properties / zip / titleRemoved value: -"Zip" - removed
Input schema / titleRemoved value: -"property_turnover_quick_estimateArguments" - removed
Output schema / $defs / CostRange / descriptionRemoved value: -"A low / expected / high estimate. Invariant: low <= expected <= high." - removed
Output schema / $defs / CostRange / properties / expected / titleRemoved value: -"Expected" - removed
Output schema / $defs / CostRange / properties / high / titleRemoved value: -"High" - removed
Output schema / $defs / CostRange / properties / low / titleRemoved value: -"Low" - removed
Output schema / $defs / CostRange / titleRemoved value: -"CostRange" - removed
Output schema / $defs / Extent / titleRemoved value: -"Extent" - removed
Output schema / $defs / FindingResolution / properties / code / titleRemoved value: -"Code" - added
Output schema / $defs / FindingResolution / properties / confidenceAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / FindingResolution / properties / finding_id / titleRemoved value: -"Finding Id" - removed
Output schema / $defs / FindingResolution / properties / issue_name / descriptionRemoved value: -"Readable name of `code`." - removed
Output schema / $defs / FindingResolution / properties / issue_name / titleRemoved value: -"Issue Name" - removed
Output schema / $defs / FindingResolution / properties / line_ids / titleRemoved value: -"Line Ids" - removed
Output schema / $defs / FindingResolution / properties / location / descriptionRemoved value: -"Where, as shown on the lines." - removed
Output schema / $defs / FindingResolution / properties / location / titleRemoved value: -"Location" - removed
Output schema / $defs / FindingResolution / properties / match_note / descriptionRemoved value: -"Set when the match left a fixture word unexplained: check this finding." - removed
Output schema / $defs / FindingResolution / properties / match_note / titleRemoved value: -"Match Note" - added
Output schema / $defs / FindingResolution / properties / modelAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / FindingResolution / properties / needs_reviewAdded value: +{ + "default": false, + "type": "boolean" +} - added
Output schema / $defs / FindingResolution / properties / not_billed_reasonAdded value: +{ + "anyOf": [ + { + "enum": [ + "none", + "ok", + "done" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - changed
Output schema / $defs / FindingResolution / properties / resolution / enumPrevious value: -[ - "exact", - "alias", - "unmapped" -]New value: +[ + "exact", + "alias", + "ai", + "unmapped", + "not_billed" +] - removed
Output schema / $defs / FindingResolution / properties / resolution / titleRemoved value: -"Resolution" - removed
Output schema / $defs / FindingResolution / properties / suggested_codes / titleRemoved value: -"Suggested Codes" - removed
Output schema / $defs / FindingResolution / properties / suggestions / descriptionRemoved value: -"Suggested codes with readable names, best first." - removed
Output schema / $defs / FindingResolution / properties / suggestions / titleRemoved value: -"Suggestions" - removed
Output schema / $defs / FindingResolution / properties / text / descriptionRemoved value: -"The finding as given (description, else code), for tracing." - removed
Output schema / $defs / FindingResolution / properties / text / titleRemoved value: -"Text" - removed
Output schema / $defs / FindingResolution / properties / uncertain / descriptionRemoved value: -"The description hedges ('mold?', 'maybe', 'possible'). Refer-outs from uncertain findings are check-first: they add a warning instead of holding phases." - removed
Output schema / $defs / FindingResolution / properties / uncertain / titleRemoved value: -"Uncertain" - removed
Output schema / $defs / FindingResolution / titleRemoved value: -"FindingResolution" - removed
Output schema / $defs / Links / descriptionRemoved value: -"Where the user gets files. MCP results only; the estimate itself is not stored." - removed
Output schema / $defs / Links / properties / downloads / descriptionRemoved value: -"Format -> URL. POST the property_turnover_scope arguments as JSON." - removed
Output schema / $defs / Links / properties / downloads / titleRemoved value: -"Downloads" - removed
Output schema / $defs / Links / properties / how_to_get_files / titleRemoved value: -"How To Get Files" - removed
Output schema / $defs / Links / properties / web_tool / descriptionRemoved value: -"The free web tool." - removed
Output schema / $defs / Links / properties / web_tool / titleRemoved value: -"Web Tool" - removed
Output schema / $defs / Links / properties / web_tool_prefilled / descriptionRemoved value: -"Opens the web tool with these inputs filled in and estimates them; the user can download the Excel workbook and owner estimate there. Give this link to the user." - removed
Output schema / $defs / Links / properties / web_tool_prefilled / titleRemoved value: -"Web Tool Prefilled" - removed
Output schema / $defs / Links / titleRemoved value: -"Links" - removed
Output schema / $defs / Note / properties / code / titleRemoved value: -"Code" - removed
Output schema / $defs / Note / properties / finding_ids / titleRemoved value: -"Finding Ids" - removed
Output schema / $defs / Note / properties / line_ids / titleRemoved value: -"Line Ids" - removed
Output schema / $defs / Note / properties / message / titleRemoved value: -"Message" - removed
Output schema / $defs / Note / titleRemoved value: -"Note" - removed
Output schema / $defs / Phase / descriptionRemoved value: -"Make-ready order. Values sort in sequence order via PHASE_ORDER." - removed
Output schema / $defs / Phase / titleRemoved value: -"Phase" - removed
Output schema / $defs / PriceBasis / titleRemoved value: -"PriceBasis" - removed
Output schema / $defs / PriceTier / descriptionRemoved value: -"Purchasing channel. Library prices are pm_vendor (a PM buying turns from a local vendor)." - removed
Output schema / $defs / PriceTier / titleRemoved value: -"PriceTier" - removed
Output schema / $defs / Priority / titleRemoved value: -"Priority" - removed
Output schema / $defs / Profile / titleRemoved value: -"Profile" - removed
Output schema / $defs / Provenance / properties / ruleset_hash / titleRemoved value: -"Ruleset Hash" - removed
Output schema / $defs / Provenance / properties / ruleset_id / titleRemoved value: -"Ruleset Id" - removed
Output schema / $defs / Provenance / properties / ruleset_version / titleRemoved value: -"Ruleset Version" - removed
Output schema / $defs / Provenance / properties / sources / titleRemoved value: -"Sources" - removed
Output schema / $defs / Provenance / titleRemoved value: -"Provenance" - removed
Output schema / $defs / RateCardUse / properties / entry / descriptionRemoved value: -"0-based index into the request's rate_card." - removed
Output schema / $defs / RateCardUse / properties / entry / titleRemoved value: -"Entry" - removed
Output schema / $defs / RateCardUse / properties / lines / titleRemoved value: -"Lines" - removed
Output schema / $defs / RateCardUse / properties / note / titleRemoved value: -"Note" - removed
Output schema / $defs / RateCardUse / properties / target / descriptionRemoved value: -"The entry's task_id or trade." - removed
Output schema / $defs / RateCardUse / properties / target / titleRemoved value: -"Target" - removed
Output schema / $defs / RateCardUse / titleRemoved value: -"RateCardUse" - removed
Output schema / $defs / ReferOutNote / properties / blocks_phases / titleRemoved value: -"Blocks Phases" - removed
Output schema / $defs / ReferOutNote / properties / finding_ids / titleRemoved value: -"Finding Ids" - removed
Output schema / $defs / ReferOutNote / properties / id / titleRemoved value: -"Id" - removed
Output schema / $defs / ReferOutNote / properties / kind / titleRemoved value: -"Kind" - removed
Output schema / $defs / ReferOutNote / properties / name / titleRemoved value: -"Name" - removed
Output schema / $defs / ReferOutNote / properties / professional / titleRemoved value: -"Professional" - removed
Output schema / $defs / ReferOutNote / properties / reason / titleRemoved value: -"Reason" - removed
Output schema / $defs / ReferOutNote / properties / sources / titleRemoved value: -"Sources" - removed
Output schema / $defs / ReferOutNote / properties / unconfirmed / descriptionRemoved value: -"Every triggering finding was hedged ('maybe', '?'): check first; no phase is held until the condition is confirmed (see warnings)." - removed
Output schema / $defs / ReferOutNote / properties / unconfirmed / titleRemoved value: -"Unconfirmed" - removed
Output schema / $defs / ReferOutNote / titleRemoved value: -"ReferOutNote" - removed
Output schema / $defs / Region / properties / basis / titleRemoved value: -"Basis" - removed
Output schema / $defs / Region / properties / cbsa / titleRemoved value: -"Cbsa" - removed
Output schema / $defs / Region / properties / cbsa_name / titleRemoved value: -"Cbsa Name" - removed
Output schema / $defs / Region / properties / vintage / titleRemoved value: -"Vintage" - removed
Output schema / $defs / Region / properties / zip3 / titleRemoved value: -"Zip3" - removed
Output schema / $defs / Region / titleRemoved value: -"Region" - removed
Output schema / $defs / Responsibility / titleRemoved value: -"Responsibility" - removed
Output schema / $defs / RunInfo / properties / capability / titleRemoved value: -"Capability" - removed
Output schema / $defs / RunInfo / properties / contract_version / titleRemoved value: -"Contract Version" - removed
Output schema / $defs / RunInfo / properties / duration_ms / titleRemoved value: -"Duration Ms" - removed
Output schema / $defs / RunInfo / properties / engine_version / titleRemoved value: -"Engine Version" - removed
Output schema / $defs / RunInfo / properties / id / titleRemoved value: -"Id" - removed
Output schema / $defs / RunInfo / properties / operation / titleRemoved value: -"Operation" - removed
Output schema / $defs / RunInfo / properties / received_at / titleRemoved value: -"Received At" - removed
Output schema / $defs / RunInfo / properties / ruleset_hash / titleRemoved value: -"Ruleset Hash" - removed
Output schema / $defs / RunInfo / properties / ruleset_version / titleRemoved value: -"Ruleset Version" - removed
Output schema / $defs / RunInfo / titleRemoved value: -"RunInfo" - removed
Output schema / $defs / ScopeLine / properties / allowance / descriptionRemoved value: -"Quote-required lines only: a non-binding budget range. NOT included in any total; summed separately in totals.allowances." - removed
Output schema / $defs / ScopeLine / properties / confidence / titleRemoved value: -"Confidence" - removed
Output schema / $defs / ScopeLine / properties / decision / titleRemoved value: -"Decision" - removed
Output schema / $defs / ScopeLine / properties / finding_ids / titleRemoved value: -"Finding Ids" - removed
Output schema / $defs / ScopeLine / properties / line_id / titleRemoved value: -"Line Id" - removed
Output schema / $defs / ScopeLine / properties / location / titleRemoved value: -"Location" - removed
Output schema / $defs / ScopeLine / properties / name / titleRemoved value: -"Name" - added
Output schema / $defs / ScopeLine / properties / needs_reviewAdded value: +{ + "default": false, + "type": "boolean" +} - removed
Output schema / $defs / ScopeLine / properties / quantity / titleRemoved value: -"Quantity" - removed
Output schema / $defs / ScopeLine / properties / quantity_source / titleRemoved value: -"Quantity Source" - removed
Output schema / $defs / ScopeLine / properties / refer_out / titleRemoved value: -"Refer Out" - removed
Output schema / $defs / ScopeLine / properties / responsibility_by_finding / descriptionRemoved value: -"Set when the hint is 'mixed': the hint of each finding the line carries." - removed
Output schema / $defs / ScopeLine / properties / responsibility_by_finding / titleRemoved value: -"Responsibility By Finding" - removed
Output schema / $defs / ScopeLine / properties / rule_ids / titleRemoved value: -"Rule Ids" - removed
Output schema / $defs / ScopeLine / properties / task_id / titleRemoved value: -"Task Id" - added
Output schema / $defs / ScopeLine / properties / to_confirmAdded value: +{ + "default": false, + "type": "boolean" +} - removed
Output schema / $defs / ScopeLine / properties / vendor_note / titleRemoved value: -"Vendor Note" - removed
Output schema / $defs / ScopeLine / titleRemoved value: -"ScopeLine" - removed
Output schema / $defs / ScopeResult / descriptionRemoved value: -"Field order puts the answer first (summary, disclaimer, totals, refer-outs, vendor\nscopes), because agents and truncating clients read from the top." - removed
Output schema / $defs / ScopeResult / properties / assumptions / titleRemoved value: -"Assumptions" - removed
Output schema / $defs / ScopeResult / properties / detail / titleRemoved value: -"Detail" - removed
Output schema / $defs / ScopeResult / properties / disclaimer / titleRemoved value: -"Disclaimer" - removed
Output schema / $defs / ScopeResult / properties / findings / titleRemoved value: -"Findings" - removed
Output schema / $defs / ScopeResult / properties / lines / titleRemoved value: -"Lines" - removed
Output schema / $defs / ScopeResult / properties / lines_omitted / descriptionRemoved value: -"Lines left out in summary detail." - removed
Output schema / $defs / ScopeResult / properties / lines_omitted / titleRemoved value: -"Lines Omitted" - removed
Output schema / $defs / ScopeResult / properties / omitted_note / descriptionRemoved value: -"Summary detail: what the omitted lines are (routine turn tasks) and their cost." - removed
Output schema / $defs / ScopeResult / properties / omitted_note / titleRemoved value: -"Omitted Note" - removed
Output schema / $defs / ScopeResult / properties / rate_card_applied / descriptionRemoved value: -"Rate card entries that changed a price." - removed
Output schema / $defs / ScopeResult / properties / rate_card_applied / titleRemoved value: -"Rate Card Applied" - removed
Output schema / $defs / ScopeResult / properties / rate_card_ignored / descriptionRemoved value: -"Rate card entries that changed nothing, with why." - removed
Output schema / $defs / ScopeResult / properties / rate_card_ignored / titleRemoved value: -"Rate Card Ignored" - removed
Output schema / $defs / ScopeResult / properties / refer_outs / titleRemoved value: -"Refer Outs" - removed
Output schema / $defs / ScopeResult / properties / summary / titleRemoved value: -"Summary" - removed
Output schema / $defs / ScopeResult / properties / trade_scopes / titleRemoved value: -"Trade Scopes" - removed
Output schema / $defs / ScopeResult / properties / unknowns / titleRemoved value: -"Unknowns" - removed
Output schema / $defs / ScopeResult / properties / warnings / titleRemoved value: -"Warnings" - removed
Output schema / $defs / ScopeResult / titleRemoved value: -"ScopeResult" - removed
Output schema / $defs / SourceRef / properties / id / titleRemoved value: -"Id" - removed
Output schema / $defs / SourceRef / properties / title / titleRemoved value: -"Title" - removed
Output schema / $defs / SourceRef / properties / url / titleRemoved value: -"Url" - removed
Output schema / $defs / SourceRef / titleRemoved value: -"SourceRef" - removed
Output schema / $defs / Suggestion / properties / code / titleRemoved value: -"Code" - removed
Output schema / $defs / Suggestion / properties / name / titleRemoved value: -"Name" - removed
Output schema / $defs / Suggestion / titleRemoved value: -"Suggestion" - removed
Output schema / $defs / Totals / properties / allowances / descriptionRemoved value: -"Budget allowance for quote-required lines (refer-outs, manual quotes). Shown outside the totals: subtotal and total never include it." - changed
Output schema / $defs / Totals / properties / note / defaultPrevious value: -"must, should and could are work lines only. visit_charges (minimum call-out and trip fees, once per trade) are added on top: subtotal = must + should + could + visit_charges; total = subtotal + tax. allowances are outside the total."New value: +"must, should and could are work lines only. visit_charges (minimum call-out and trip fees, once per trade) are added on top: subtotal = must + should + could + visit_charges; total = subtotal + tax. allowances and to_confirm (uncertain items) are outside the total." - removed
Output schema / $defs / Totals / properties / note / descriptionRemoved value: -"How the totals add up." - removed
Output schema / $defs / Totals / properties / note / titleRemoved value: -"Note" - added
Output schema / $defs / Totals / properties / to_confirmAdded value: +{ + "$ref": "#/$defs/CostRange" +} - removed
Output schema / $defs / Totals / titleRemoved value: -"Totals" - removed
Output schema / $defs / Trade / titleRemoved value: -"Trade" - removed
Output schema / $defs / TradeScope / properties / line_ids / titleRemoved value: -"Line Ids" - removed
Output schema / $defs / TradeScope / titleRemoved value: -"TradeScope" - removed
Output schema / $defs / Uom / titleRemoved value: -"Uom" - removed
Output schema / $defs / Vendor / properties / contact / titleRemoved value: -"Contact" - removed
Output schema / $defs / Vendor / properties / name / titleRemoved value: -"Name" - removed
Output schema / $defs / Vendor / titleRemoved value: -"Vendor" - removed
Output schema / properties / client_refs / descriptionRemoved value: -"Your own ids, echoed when you sent client_refs." - removed
Output schema / properties / client_refs / titleRemoved value: -"Client Refs" - removed
Output schema / properties / input_hash / descriptionRemoved value: -"Only with audit=true." - removed
Output schema / properties / input_hash / titleRemoved value: -"Input Hash" - removed
Output schema / properties / result_hash / descriptionRemoved value: -"Only with audit=true." - removed
Output schema / properties / result_hash / titleRemoved value: -"Result Hash" - removed
Output schema / properties / run / descriptionRemoved value: -"Only with audit=true." - removed
Output schema / titleRemoved value: -"PropertyTurnoverQuickEstimateMcpResult"
- Changed
property_turnover_scope322 fields changed- removed
Input schema / $defs / Area / titleRemoved value: -"Area" - removed
Input schema / $defs / Constraints / properties / access_notes / anyOfRemoved value: -[ - { - "maxLength": 500, - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Constraints / properties / access_notes / defaultRemoved value: -null - added
Input schema / $defs / Constraints / properties / access_notes / maxLengthAdded value: +500 - removed
Input schema / $defs / Constraints / properties / access_notes / titleRemoved value: -"Access Notes" - added
Input schema / $defs / Constraints / properties / access_notes / typeAdded value: +"string" - removed
Input schema / $defs / Constraints / properties / occupied / titleRemoved value: -"Occupied" - removed
Input schema / $defs / Constraints / properties / target_ready_date / anyOfRemoved value: -[ - { - "format": "date", - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Constraints / properties / target_ready_date / defaultRemoved value: -null - added
Input schema / $defs / Constraints / properties / target_ready_date / formatAdded value: +"date" - removed
Input schema / $defs / Constraints / properties / target_ready_date / titleRemoved value: -"Target Ready Date" - added
Input schema / $defs / Constraints / properties / target_ready_date / typeAdded value: +"string" - removed
Input schema / $defs / Constraints / titleRemoved value: -"Constraints" - removed
Input schema / $defs / Decision / properties / action / titleRemoved value: -"Action" - removed
Input schema / $defs / Decision / properties / finding_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Decision / properties / finding_id / defaultRemoved value: -null - removed
Input schema / $defs / Decision / properties / finding_id / titleRemoved value: -"Finding Id" - added
Input schema / $defs / Decision / properties / finding_id / typeAdded value: +"string" - removed
Input schema / $defs / Decision / properties / line_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Decision / properties / line_id / defaultRemoved value: -null - removed
Input schema / $defs / Decision / properties / line_id / titleRemoved value: -"Line Id" - added
Input schema / $defs / Decision / properties / line_id / typeAdded value: +"string" - removed
Input schema / $defs / Decision / properties / note / anyOfRemoved value: -[ - { - "maxLength": 300, - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Decision / properties / note / defaultRemoved value: -null - added
Input schema / $defs / Decision / properties / note / maxLengthAdded value: +300 - removed
Input schema / $defs / Decision / properties / note / titleRemoved value: -"Note" - added
Input schema / $defs / Decision / properties / note / typeAdded value: +"string" - removed
Input schema / $defs / Decision / titleRemoved value: -"Decision" - removed
Input schema / $defs / Extent / titleRemoved value: -"Extent" - added
Input schema / $defs / ExtractionAdded value: +{ + "additionalProperties": false, + "description": "How a finding was produced, when software read it from free text (contract 0.4.0).\n\nSet by the web tool when its AI reader (Azure OpenAI) turned a person's own words into this\nfinding. The engine reports such a finding as ``resolution: \"ai\"`` with ``needs_review``\nand flags its lines; it never changes how the finding is priced.", + "properties": { + "confidence": { + "anyOf": [ + { + "maximum": 1, + "minimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + } + ], + "description": "The reader's confidence, 0 to 1." + }, + "method": { + "const": "ai", + "description": "'ai': read by a language model from free text.", + "type": "string" + }, + "model": { + "description": "The model that read it, e.g. 'gpt-5-nano 2025-08-07'.", + "maxLength": 80, + "pattern": "^[A-Za-z0-9._:() -]+$", + "type": "string" + } + }, + "required": [ + "method", + "model", + "confidence" + ], + "type": "object" +} - removed
Input schema / $defs / Finding / properties / code / anyOfRemoved value: -[ - { - "maxLength": 80, - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Finding / properties / code / defaultRemoved value: -null - added
Input schema / $defs / Finding / properties / code / maxLengthAdded value: +80 - removed
Input schema / $defs / Finding / properties / code / titleRemoved value: -"Code" - added
Input schema / $defs / Finding / properties / code / typeAdded value: +"string" - removed
Input schema / $defs / Finding / properties / description / anyOfRemoved value: -[ - { - "maxLength": 300, - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Finding / properties / description / defaultRemoved value: -null - added
Input schema / $defs / Finding / properties / description / maxLengthAdded value: +300 - removed
Input schema / $defs / Finding / properties / description / titleRemoved value: -"Description" - added
Input schema / $defs / Finding / properties / description / typeAdded value: +"string" - added
Input schema / $defs / Finding / properties / extent / $refAdded value: +"#/$defs/Extent" - removed
Input schema / $defs / Finding / properties / extent / anyOfRemoved value: -[ - { - "$ref": "#/$defs/Extent" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Finding / properties / extent / defaultRemoved value: -null - added
Input schema / $defs / Finding / properties / extractionAdded value: +{ + "$ref": "#/$defs/Extraction", + "description": "Leave out. Set by the web tool for findings its AI reader produced from free text; they come back as resolution 'ai' with needs_review." +} - removed
Input schema / $defs / Finding / properties / id / anyOfRemoved value: -[ - { - "maxLength": 40, - "pattern": "^[A-Za-z0-9_.:-]+$", - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Finding / properties / id / defaultRemoved value: -null - added
Input schema / $defs / Finding / properties / id / maxLengthAdded value: +40 - added
Input schema / $defs / Finding / properties / id / patternAdded value: +"^[A-Za-z0-9_.:-]+$" - removed
Input schema / $defs / Finding / properties / id / titleRemoved value: -"Id" - added
Input schema / $defs / Finding / properties / id / typeAdded value: +"string" - removed
Input schema / $defs / Finding / properties / notes / anyOfRemoved value: -[ - { - "maxLength": 1000, - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Finding / properties / notes / defaultRemoved value: -null - added
Input schema / $defs / Finding / properties / notes / maxLengthAdded value: +1000 - removed
Input schema / $defs / Finding / properties / notes / titleRemoved value: -"Notes" - added
Input schema / $defs / Finding / properties / notes / typeAdded value: +"string" - added
Input schema / $defs / Finding / properties / quantity / $refAdded value: +"#/$defs/Quantity" - removed
Input schema / $defs / Finding / properties / quantity / anyOfRemoved value: -[ - { - "$ref": "#/$defs/Quantity" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Finding / properties / quantity / defaultRemoved value: -null - removed
Input schema / $defs / Finding / titleRemoved value: -"Finding" - removed
Input schema / $defs / FloorCoverings / properties / carpet_present / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / FloorCoverings / properties / carpet_present / defaultRemoved value: -null - removed
Input schema / $defs / FloorCoverings / properties / carpet_present / titleRemoved value: -"Carpet Present" - added
Input schema / $defs / FloorCoverings / properties / carpet_present / typeAdded value: +"boolean" - removed
Input schema / $defs / FloorCoverings / properties / carpet_sq_ft / anyOfRemoved value: -[ - { - "maximum": 20000, - "minimum": 0, - "type": "integer" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / FloorCoverings / properties / carpet_sq_ft / defaultRemoved value: -null - added
Input schema / $defs / FloorCoverings / properties / carpet_sq_ft / maximumAdded value: +20000 - added
Input schema / $defs / FloorCoverings / properties / carpet_sq_ft / minimumAdded value: +0 - removed
Input schema / $defs / FloorCoverings / properties / carpet_sq_ft / titleRemoved value: -"Carpet Sq Ft" - added
Input schema / $defs / FloorCoverings / properties / carpet_sq_ft / typeAdded value: +"integer" - removed
Input schema / $defs / FloorCoverings / titleRemoved value: -"FloorCoverings" - removed
Input schema / $defs / Location / properties / label / anyOfRemoved value: -[ - { - "maxLength": 60, - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Location / properties / label / defaultRemoved value: -null - added
Input schema / $defs / Location / properties / label / maxLengthAdded value: +60 - removed
Input schema / $defs / Location / properties / label / titleRemoved value: -"Label" - added
Input schema / $defs / Location / properties / label / typeAdded value: +"string" - removed
Input schema / $defs / Location / titleRemoved value: -"Location" - removed
Input schema / $defs / PriceTier / titleRemoved value: -"PriceTier" - removed
Input schema / $defs / Profile / titleRemoved value: -"Profile" - removed
Input schema / $defs / PropertyProfile / properties / bathrooms / titleRemoved value: -"Bathrooms" - removed
Input schema / $defs / PropertyProfile / properties / bedrooms / titleRemoved value: -"Bedrooms" - removed
Input schema / $defs / PropertyProfile / properties / sq_ft / anyOfRemoved value: -[ - { - "maximum": 20000, - "minimum": 150, - "type": "integer" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / PropertyProfile / properties / sq_ft / defaultRemoved value: -null - added
Input schema / $defs / PropertyProfile / properties / sq_ft / maximumAdded value: +20000 - added
Input schema / $defs / PropertyProfile / properties / sq_ft / minimumAdded value: +150 - removed
Input schema / $defs / PropertyProfile / properties / sq_ft / titleRemoved value: -"Sq Ft" - added
Input schema / $defs / PropertyProfile / properties / sq_ft / typeAdded value: +"integer" - removed
Input schema / $defs / PropertyProfile / properties / year_built / anyOfRemoved value: -[ - { - "maximum": 2100, - "minimum": 1700, - "type": "integer" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / PropertyProfile / properties / year_built / defaultRemoved value: -null - added
Input schema / $defs / PropertyProfile / properties / year_built / maximumAdded value: +2100 - added
Input schema / $defs / PropertyProfile / properties / year_built / minimumAdded value: +1700 - removed
Input schema / $defs / PropertyProfile / properties / year_built / titleRemoved value: -"Year Built" - added
Input schema / $defs / PropertyProfile / properties / year_built / typeAdded value: +"integer" - removed
Input schema / $defs / PropertyProfile / properties / zip / titleRemoved value: -"Zip" - removed
Input schema / $defs / PropertyProfile / titleRemoved value: -"PropertyProfile" - removed
Input schema / $defs / Quantity / properties / value / titleRemoved value: -"Value" - removed
Input schema / $defs / Quantity / titleRemoved value: -"Quantity" - changed
Input schema / $defs / RateCardEntry / properties / min_charge / anyOfPrevious value: -[ - { - "minimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "minimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + } +] - removed
Input schema / $defs / RateCardEntry / properties / min_charge / defaultRemoved value: -null - removed
Input schema / $defs / RateCardEntry / properties / min_charge / titleRemoved value: -"Min Charge" - removed
Input schema / $defs / RateCardEntry / properties / task_id / anyOfRemoved value: -[ - { - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / RateCardEntry / properties / task_id / defaultRemoved value: -null - removed
Input schema / $defs / RateCardEntry / properties / task_id / titleRemoved value: -"Task Id" - added
Input schema / $defs / RateCardEntry / properties / task_id / typeAdded value: +"string" - added
Input schema / $defs / RateCardEntry / properties / trade / $refAdded value: +"#/$defs/Trade" - removed
Input schema / $defs / RateCardEntry / properties / trade / anyOfRemoved value: -[ - { - "$ref": "#/$defs/Trade" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / RateCardEntry / properties / trade / defaultRemoved value: -null - changed
Input schema / $defs / RateCardEntry / properties / trip_charge / anyOfPrevious value: -[ - { - "minimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "minimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + } +] - removed
Input schema / $defs / RateCardEntry / properties / trip_charge / defaultRemoved value: -null - removed
Input schema / $defs / RateCardEntry / properties / trip_charge / titleRemoved value: -"Trip Charge" - changed
Input schema / $defs / RateCardEntry / properties / unit_price / anyOfPrevious value: -[ - { - "minimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "minimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + } +] - removed
Input schema / $defs / RateCardEntry / properties / unit_price / defaultRemoved value: -null - removed
Input schema / $defs / RateCardEntry / properties / unit_price / titleRemoved value: -"Unit Price" - added
Input schema / $defs / RateCardEntry / properties / uom / $refAdded value: +"#/$defs/Uom" - removed
Input schema / $defs / RateCardEntry / properties / uom / anyOfRemoved value: -[ - { - "$ref": "#/$defs/Uom" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / RateCardEntry / properties / uom / defaultRemoved value: -null - removed
Input schema / $defs / RateCardEntry / titleRemoved value: -"RateCardEntry" - removed
Input schema / $defs / Standards / titleRemoved value: -"Standards" - removed
Input schema / $defs / StandardsOverrides / properties / always_rekey / anyOfRemoved value: -[ - { - "type": "boolean" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / StandardsOverrides / properties / always_rekey / defaultRemoved value: -null - removed
Input schema / $defs / StandardsOverrides / properties / always_rekey / titleRemoved value: -"Always Rekey" - added
Input schema / $defs / StandardsOverrides / properties / always_rekey / typeAdded value: +"boolean" - removed
Input schema / $defs / StandardsOverrides / properties / carpet_policy / anyOfRemoved value: -[ - { - "enum": [ - "clean", - "replace_if_damaged", - "always_replace" - ], - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / StandardsOverrides / properties / carpet_policy / defaultRemoved value: -null - added
Input schema / $defs / StandardsOverrides / properties / carpet_policy / enumAdded value: +[ + "clean", + "replace_if_damaged", + "always_replace" +] - removed
Input schema / $defs / StandardsOverrides / properties / carpet_policy / titleRemoved value: -"Carpet Policy" - added
Input schema / $defs / StandardsOverrides / properties / carpet_policy / typeAdded value: +"string" - removed
Input schema / $defs / StandardsOverrides / properties / cleaning_policy / anyOfRemoved value: -[ - { - "enum": [ - "standard", - "deep" - ], - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / StandardsOverrides / properties / cleaning_policy / defaultRemoved value: -null - added
Input schema / $defs / StandardsOverrides / properties / cleaning_policy / enumAdded value: +[ + "standard", + "deep" +] - removed
Input schema / $defs / StandardsOverrides / properties / cleaning_policy / titleRemoved value: -"Cleaning Policy" - added
Input schema / $defs / StandardsOverrides / properties / cleaning_policy / typeAdded value: +"string" - changed
Input schema / $defs / StandardsOverrides / properties / markup_pct / anyOfPrevious value: -[ - { - "maximum": 100, - "minimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maximum": 100, + "minimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + } +] - removed
Input schema / $defs / StandardsOverrides / properties / markup_pct / defaultRemoved value: -null - removed
Input schema / $defs / StandardsOverrides / properties / markup_pct / titleRemoved value: -"Markup Pct" - removed
Input schema / $defs / StandardsOverrides / properties / paint_policy / anyOfRemoved value: -[ - { - "enum": [ - "touch_up", - "full_if_needed", - "always_full" - ], - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / StandardsOverrides / properties / paint_policy / defaultRemoved value: -null - added
Input schema / $defs / StandardsOverrides / properties / paint_policy / enumAdded value: +[ + "touch_up", + "full_if_needed", + "always_full" +] - removed
Input schema / $defs / StandardsOverrides / properties / paint_policy / titleRemoved value: -"Paint Policy" - added
Input schema / $defs / StandardsOverrides / properties / paint_policy / typeAdded value: +"string" - removed
Input schema / $defs / StandardsOverrides / titleRemoved value: -"StandardsOverrides" - removed
Input schema / $defs / Trade / titleRemoved value: -"Trade" - removed
Input schema / $defs / UnitType / titleRemoved value: -"UnitType" - removed
Input schema / $defs / Uom / titleRemoved value: -"Uom" - removed
Input schema / $defs / Vendor / properties / contact / anyOfRemoved value: -[ - { - "maxLength": 200, - "type": "string" - }, - { - "type": "null" - } -] - removed
Input schema / $defs / Vendor / properties / contact / defaultRemoved value: -null - added
Input schema / $defs / Vendor / properties / contact / maxLengthAdded value: +200 - removed
Input schema / $defs / Vendor / properties / contact / titleRemoved value: -"Contact" - added
Input schema / $defs / Vendor / properties / contact / typeAdded value: +"string" - removed
Input schema / $defs / Vendor / properties / name / titleRemoved value: -"Name" - removed
Input schema / $defs / Vendor / titleRemoved value: -"Vendor" - removed
Input schema / properties / audit / titleRemoved value: -"Audit" - added
Input schema / properties / client_refs / additionalPropertiesAdded value: +{ + "type": "string" +} - removed
Input schema / properties / client_refs / anyOfRemoved value: -[ - { - "additionalProperties": { - "type": "string" - }, - "type": "object" - }, - { - "type": "null" - } -] - removed
Input schema / properties / client_refs / defaultRemoved value: -null - removed
Input schema / properties / client_refs / titleRemoved value: -"Client Refs" - added
Input schema / properties / client_refs / typeAdded value: +"object" - removed
Input schema / properties / decisions / titleRemoved value: -"Decisions" - removed
Input schema / properties / detail / titleRemoved value: -"Detail" - removed
Input schema / properties / findings / titleRemoved value: -"Findings" - removed
Input schema / properties / rate_card / titleRemoved value: -"Rate Card" - added
Input schema / properties / retainAdded value: +{ + "default": true, + "description": "Optional (contract 0.5.0). false: keep none of this request's text. By default the finding descriptions are kept with contact details and access codes removed, to improve matching; the estimate is the same either way.", + "type": "boolean" +} - changed
Input schema / properties / tax_rate / anyOfPrevious value: -[ - { - "maximum": 0.2, - "minimum": 0, - "type": "number" - }, - { - "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", - "type": "string" - }, - { - "type": "null" - } -]New value: +[ + { + "maximum": 0.2, + "minimum": 0, + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + } +] - removed
Input schema / properties / tax_rate / defaultRemoved value: -null - removed
Input schema / properties / tax_rate / titleRemoved value: -"Tax Rate" - removed
Input schema / properties / trade_vendors / titleRemoved value: -"Trade Vendors" - removed
Input schema / titleRemoved value: -"property_turnover_scopeArguments" - removed
Output schema / $defs / CostRange / descriptionRemoved value: -"A low / expected / high estimate. Invariant: low <= expected <= high." - removed
Output schema / $defs / CostRange / properties / expected / titleRemoved value: -"Expected" - removed
Output schema / $defs / CostRange / properties / high / titleRemoved value: -"High" - removed
Output schema / $defs / CostRange / properties / low / titleRemoved value: -"Low" - removed
Output schema / $defs / CostRange / titleRemoved value: -"CostRange" - removed
Output schema / $defs / Extent / titleRemoved value: -"Extent" - removed
Output schema / $defs / FindingResolution / properties / code / titleRemoved value: -"Code" - added
Output schema / $defs / FindingResolution / properties / confidenceAdded value: +{ + "anyOf": [ + { + "type": "number" + }, + { + "pattern": "^(?!^[-+.]*$)[+-]?0*\\d*\\.?\\d*$", + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - removed
Output schema / $defs / FindingResolution / properties / finding_id / titleRemoved value: -"Finding Id" - removed
Output schema / $defs / FindingResolution / properties / issue_name / descriptionRemoved value: -"Readable name of `code`." - removed
Output schema / $defs / FindingResolution / properties / issue_name / titleRemoved value: -"Issue Name" - removed
Output schema / $defs / FindingResolution / properties / line_ids / titleRemoved value: -"Line Ids" - removed
Output schema / $defs / FindingResolution / properties / location / descriptionRemoved value: -"Where, as shown on the lines." - removed
Output schema / $defs / FindingResolution / properties / location / titleRemoved value: -"Location" - removed
Output schema / $defs / FindingResolution / properties / match_note / descriptionRemoved value: -"Set when the match left a fixture word unexplained: check this finding." - removed
Output schema / $defs / FindingResolution / properties / match_note / titleRemoved value: -"Match Note" - added
Output schema / $defs / FindingResolution / properties / modelAdded value: +{ + "anyOf": [ + { + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - added
Output schema / $defs / FindingResolution / properties / needs_reviewAdded value: +{ + "default": false, + "type": "boolean" +} - added
Output schema / $defs / FindingResolution / properties / not_billed_reasonAdded value: +{ + "anyOf": [ + { + "enum": [ + "none", + "ok", + "done" + ], + "type": "string" + }, + { + "type": "null" + } + ], + "default": null +} - changed
Output schema / $defs / FindingResolution / properties / resolution / enumPrevious value: -[ - "exact", - "alias", - "unmapped" -]New value: +[ + "exact", + "alias", + "ai", + "unmapped", + "not_billed" +] - removed
Output schema / $defs / FindingResolution / properties / resolution / titleRemoved value: -"Resolution" - removed
Output schema / $defs / FindingResolution / properties / suggested_codes / titleRemoved value: -"Suggested Codes" - removed
Output schema / $defs / FindingResolution / properties / suggestions / descriptionRemoved value: -"Suggested codes with readable names, best first." - removed
Output schema / $defs / FindingResolution / properties / suggestions / titleRemoved value: -"Suggestions" - removed
Output schema / $defs / FindingResolution / properties / text / descriptionRemoved value: -"The finding as given (description, else code), for tracing." - removed
Output schema / $defs / FindingResolution / properties / text / titleRemoved value: -"Text" - removed
Output schema / $defs / FindingResolution / properties / uncertain / descriptionRemoved value: -"The description hedges ('mold?', 'maybe', 'possible'). Refer-outs from uncertain findings are check-first: they add a warning instead of holding phases." - removed
Output schema / $defs / FindingResolution / properties / uncertain / titleRemoved value: -"Uncertain" - removed
Output schema / $defs / FindingResolution / titleRemoved value: -"FindingResolution" - removed
Output schema / $defs / Links / descriptionRemoved value: -"Where the user gets files. MCP results only; the estimate itself is not stored." - removed
Output schema / $defs / Links / properties / downloads / descriptionRemoved value: -"Format -> URL. POST the property_turnover_scope arguments as JSON." - removed
Output schema / $defs / Links / properties / downloads / titleRemoved value: -"Downloads" - removed
Output schema / $defs / Links / properties / how_to_get_files / titleRemoved value: -"How To Get Files" - removed
Output schema / $defs / Links / properties / web_tool / descriptionRemoved value: -"The free web tool." - removed
Output schema / $defs / Links / properties / web_tool / titleRemoved value: -"Web Tool" - removed
Output schema / $defs / Links / properties / web_tool_prefilled / descriptionRemoved value: -"Opens the web tool with these inputs filled in and estimates them; the user can download the Excel workbook and owner estimate there. Give this link to the user." - removed
Output schema / $defs / Links / properties / web_tool_prefilled / titleRemoved value: -"Web Tool Prefilled" - removed
Output schema / $defs / Links / titleRemoved value: -"Links" - removed
Output schema / $defs / Note / properties / code / titleRemoved value: -"Code" - removed
Output schema / $defs / Note / properties / finding_ids / titleRemoved value: -"Finding Ids" - removed
Output schema / $defs / Note / properties / line_ids / titleRemoved value: -"Line Ids" - removed
Output schema / $defs / Note / properties / message / titleRemoved value: -"Message" - removed
Output schema / $defs / Note / titleRemoved value: -"Note" - removed
Output schema / $defs / Phase / descriptionRemoved value: -"Make-ready order. Values sort in sequence order via PHASE_ORDER." - removed
Output schema / $defs / Phase / titleRemoved value: -"Phase" - removed
Output schema / $defs / PriceBasis / titleRemoved value: -"PriceBasis" - removed
Output schema / $defs / PriceTier / descriptionRemoved value: -"Purchasing channel. Library prices are pm_vendor (a PM buying turns from a local vendor)." - removed
Output schema / $defs / PriceTier / titleRemoved value: -"PriceTier" - removed
Output schema / $defs / Priority / titleRemoved value: -"Priority" - removed
Output schema / $defs / Profile / titleRemoved value: -"Profile" - removed
Output schema / $defs / Provenance / properties / ruleset_hash / titleRemoved value: -"Ruleset Hash" - removed
Output schema / $defs / Provenance / properties / ruleset_id / titleRemoved value: -"Ruleset Id" - removed
Output schema / $defs / Provenance / properties / ruleset_version / titleRemoved value: -"Ruleset Version" - removed
Output schema / $defs / Provenance / properties / sources / titleRemoved value: -"Sources" - removed
Output schema / $defs / Provenance / titleRemoved value: -"Provenance" - removed
Output schema / $defs / RateCardUse / properties / entry / descriptionRemoved value: -"0-based index into the request's rate_card." - removed
Output schema / $defs / RateCardUse / properties / entry / titleRemoved value: -"Entry" - removed
Output schema / $defs / RateCardUse / properties / lines / titleRemoved value: -"Lines" - removed
Output schema / $defs / RateCardUse / properties / note / titleRemoved value: -"Note" - removed
Output schema / $defs / RateCardUse / properties / target / descriptionRemoved value: -"The entry's task_id or trade." - removed
Output schema / $defs / RateCardUse / properties / target / titleRemoved value: -"Target" - removed
Output schema / $defs / RateCardUse / titleRemoved value: -"RateCardUse" - removed
Output schema / $defs / ReferOutNote / properties / blocks_phases / titleRemoved value: -"Blocks Phases" - removed
Output schema / $defs / ReferOutNote / properties / finding_ids / titleRemoved value: -"Finding Ids" - removed
Output schema / $defs / ReferOutNote / properties / id / titleRemoved value: -"Id" - removed
Output schema / $defs / ReferOutNote / properties / kind / titleRemoved value: -"Kind" - removed
Output schema / $defs / ReferOutNote / properties / name / titleRemoved value: -"Name" - removed
Output schema / $defs / ReferOutNote / properties / professional / titleRemoved value: -"Professional" - removed
Output schema / $defs / ReferOutNote / properties / reason / titleRemoved value: -"Reason" - removed
Output schema / $defs / ReferOutNote / properties / sources / titleRemoved value: -"Sources" - removed
Output schema / $defs / ReferOutNote / properties / unconfirmed / descriptionRemoved value: -"Every triggering finding was hedged ('maybe', '?'): check first; no phase is held until the condition is confirmed (see warnings)." - removed
Output schema / $defs / ReferOutNote / properties / unconfirmed / titleRemoved value: -"Unconfirmed" - removed
Output schema / $defs / ReferOutNote / titleRemoved value: -"ReferOutNote" - removed
Output schema / $defs / Region / properties / basis / titleRemoved value: -"Basis" - removed
Output schema / $defs / Region / properties / cbsa / titleRemoved value: -"Cbsa" - removed
Output schema / $defs / Region / properties / cbsa_name / titleRemoved value: -"Cbsa Name" - removed
Output schema / $defs / Region / properties / vintage / titleRemoved value: -"Vintage" - removed
Output schema / $defs / Region / properties / zip3 / titleRemoved value: -"Zip3" - removed
Output schema / $defs / Region / titleRemoved value: -"Region" - removed
Output schema / $defs / Responsibility / titleRemoved value: -"Responsibility" - removed
Output schema / $defs / RunInfo / properties / capability / titleRemoved value: -"Capability" - removed
Output schema / $defs / RunInfo / properties / contract_version / titleRemoved value: -"Contract Version" - removed
Output schema / $defs / RunInfo / properties / duration_ms / titleRemoved value: -"Duration Ms" - removed
Output schema / $defs / RunInfo / properties / engine_version / titleRemoved value: -"Engine Version" - removed
Output schema / $defs / RunInfo / properties / id / titleRemoved value: -"Id" - removed
Output schema / $defs / RunInfo / properties / operation / titleRemoved value: -"Operation" - removed
Output schema / $defs / RunInfo / properties / received_at / titleRemoved value: -"Received At" - removed
Output schema / $defs / RunInfo / properties / ruleset_hash / titleRemoved value: -"Ruleset Hash" - removed
Output schema / $defs / RunInfo / properties / ruleset_version / titleRemoved value: -"Ruleset Version" - removed
Output schema / $defs / RunInfo / titleRemoved value: -"RunInfo" - removed
Output schema / $defs / ScopeLine / properties / allowance / descriptionRemoved value: -"Quote-required lines only: a non-binding budget range. NOT included in any total; summed separately in totals.allowances." - removed
Output schema / $defs / ScopeLine / properties / confidence / titleRemoved value: -"Confidence" - removed
Output schema / $defs / ScopeLine / properties / decision / titleRemoved value: -"Decision" - removed
Output schema / $defs / ScopeLine / properties / finding_ids / titleRemoved value: -"Finding Ids" - removed
Output schema / $defs / ScopeLine / properties / line_id / titleRemoved value: -"Line Id" - removed
Output schema / $defs / ScopeLine / properties / location / titleRemoved value: -"Location" - removed
Output schema / $defs / ScopeLine / properties / name / titleRemoved value: -"Name" - added
Output schema / $defs / ScopeLine / properties / needs_reviewAdded value: +{ + "default": false, + "type": "boolean" +} - removed
Output schema / $defs / ScopeLine / properties / quantity / titleRemoved value: -"Quantity" - removed
Output schema / $defs / ScopeLine / properties / quantity_source / titleRemoved value: -"Quantity Source" - removed
Output schema / $defs / ScopeLine / properties / refer_out / titleRemoved value: -"Refer Out" - removed
Output schema / $defs / ScopeLine / properties / responsibility_by_finding / descriptionRemoved value: -"Set when the hint is 'mixed': the hint of each finding the line carries." - removed
Output schema / $defs / ScopeLine / properties / responsibility_by_finding / titleRemoved value: -"Responsibility By Finding" - removed
Output schema / $defs / ScopeLine / properties / rule_ids / titleRemoved value: -"Rule Ids" - removed
Output schema / $defs / ScopeLine / properties / task_id / titleRemoved value: -"Task Id" - added
Output schema / $defs / ScopeLine / properties / to_confirmAdded value: +{ + "default": false, + "type": "boolean" +} - removed
Output schema / $defs / ScopeLine / properties / vendor_note / titleRemoved value: -"Vendor Note" - removed
Output schema / $defs / ScopeLine / titleRemoved value: -"ScopeLine" - removed
Output schema / $defs / ScopeResult / descriptionRemoved value: -"Field order puts the answer first (summary, disclaimer, totals, refer-outs, vendor\nscopes), because agents and truncating clients read from the top." - removed
Output schema / $defs / ScopeResult / properties / assumptions / titleRemoved value: -"Assumptions" - removed
Output schema / $defs / ScopeResult / properties / detail / titleRemoved value: -"Detail" - removed
Output schema / $defs / ScopeResult / properties / disclaimer / titleRemoved value: -"Disclaimer" - removed
Output schema / $defs / ScopeResult / properties / findings / titleRemoved value: -"Findings" - removed
Output schema / $defs / ScopeResult / properties / lines / titleRemoved value: -"Lines" - removed
Output schema / $defs / ScopeResult / properties / lines_omitted / descriptionRemoved value: -"Lines left out in summary detail." - removed
Output schema / $defs / ScopeResult / properties / lines_omitted / titleRemoved value: -"Lines Omitted" - removed
Output schema / $defs / ScopeResult / properties / omitted_note / descriptionRemoved value: -"Summary detail: what the omitted lines are (routine turn tasks) and their cost." - removed
Output schema / $defs / ScopeResult / properties / omitted_note / titleRemoved value: -"Omitted Note" - removed
Output schema / $defs / ScopeResult / properties / rate_card_applied / descriptionRemoved value: -"Rate card entries that changed a price." - removed
Output schema / $defs / ScopeResult / properties / rate_card_applied / titleRemoved value: -"Rate Card Applied" - removed
Output schema / $defs / ScopeResult / properties / rate_card_ignored / descriptionRemoved value: -"Rate card entries that changed nothing, with why." - removed
Output schema / $defs / ScopeResult / properties / rate_card_ignored / titleRemoved value: -"Rate Card Ignored" - removed
Output schema / $defs / ScopeResult / properties / refer_outs / titleRemoved value: -"Refer Outs" - removed
Output schema / $defs / ScopeResult / properties / summary / titleRemoved value: -"Summary" - removed
Output schema / $defs / ScopeResult / properties / trade_scopes / titleRemoved value: -"Trade Scopes" - removed
Output schema / $defs / ScopeResult / properties / unknowns / titleRemoved value: -"Unknowns" - removed
Output schema / $defs / ScopeResult / properties / warnings / titleRemoved value: -"Warnings" - removed
Output schema / $defs / ScopeResult / titleRemoved value: -"ScopeResult" - removed
Output schema / $defs / SourceRef / properties / id / titleRemoved value: -"Id" - removed
Output schema / $defs / SourceRef / properties / title / titleRemoved value: -"Title" - removed
Output schema / $defs / SourceRef / properties / url / titleRemoved value: -"Url" - removed
Output schema / $defs / SourceRef / titleRemoved value: -"SourceRef" - removed
Output schema / $defs / Suggestion / properties / code / titleRemoved value: -"Code" - removed
Output schema / $defs / Suggestion / properties / name / titleRemoved value: -"Name" - removed
Output schema / $defs / Suggestion / titleRemoved value: -"Suggestion" - removed
Output schema / $defs / Totals / properties / allowances / descriptionRemoved value: -"Budget allowance for quote-required lines (refer-outs, manual quotes). Shown outside the totals: subtotal and total never include it." - changed
Output schema / $defs / Totals / properties / note / defaultPrevious value: -"must, should and could are work lines only. visit_charges (minimum call-out and trip fees, once per trade) are added on top: subtotal = must + should + could + visit_charges; total = subtotal + tax. allowances are outside the total."New value: +"must, should and could are work lines only. visit_charges (minimum call-out and trip fees, once per trade) are added on top: subtotal = must + should + could + visit_charges; total = subtotal + tax. allowances and to_confirm (uncertain items) are outside the total." - removed
Output schema / $defs / Totals / properties / note / descriptionRemoved value: -"How the totals add up." - removed
Output schema / $defs / Totals / properties / note / titleRemoved value: -"Note" - added
Output schema / $defs / Totals / properties / to_confirmAdded value: +{ + "$ref": "#/$defs/CostRange" +} - removed
Output schema / $defs / Totals / titleRemoved value: -"Totals" - removed
Output schema / $defs / Trade / titleRemoved value: -"Trade" - removed
Output schema / $defs / TradeScope / properties / line_ids / titleRemoved value: -"Line Ids" - removed
Output schema / $defs / TradeScope / titleRemoved value: -"TradeScope" - removed
Output schema / $defs / Uom / titleRemoved value: -"Uom" - removed
Output schema / $defs / Vendor / properties / contact / titleRemoved value: -"Contact" - removed
Output schema / $defs / Vendor / properties / name / titleRemoved value: -"Name" - removed
Output schema / $defs / Vendor / titleRemoved value: -"Vendor" - removed
Output schema / properties / client_refs / descriptionRemoved value: -"Your own ids, echoed when you sent client_refs." - removed
Output schema / properties / client_refs / titleRemoved value: -"Client Refs" - removed
Output schema / properties / input_hash / descriptionRemoved value: -"Only with audit=true." - removed
Output schema / properties / input_hash / titleRemoved value: -"Input Hash" - removed
Output schema / properties / result_hash / descriptionRemoved value: -"Only with audit=true." - removed
Output schema / properties / result_hash / titleRemoved value: -"Result Hash" - removed
Output schema / properties / run / descriptionRemoved value: -"Only with audit=true." - removed
Output schema / titleRemoved value: -"PropertyTurnoverScopeMcpResult"
5 tool updates
- First observed
deposit_settlement_rules - First observed
deposit_settlement_settle - First observed
property_turnover_issue_codes - First observed
property_turnover_quick_estimate - First observed
property_turnover_scope
Related MCP Connectors
Rental property tools for agents: turnover cost estimates and security deposit rules by US state.
Fix-and-flip profit calculator plus hard-money and DSCR lender terms by state.
Check US leases for red flags and look up verified state tenant law with statute citations.
Cited, receipt-backed US home-buying data & calculators — education-only, every number sourced.
Related MCP Servers
- AlicenseAqualityBmaintenanceEnables AI assistants to retrieve exact, cited security-deposit law facts for all 50 US states, compare states side by side, list covered states, and check deposit deduction letters against state rules.3MIT
- AlicenseNot gradedqualityBmaintenanceLandlord and rental-property calculators as MCP tools: cash flow, cap rate, DSCR, Airbnb break-even occupancy, rent late fees, lease notice dates, and IRS mileage. Offline and deterministic, with no dependencies.MIT
- FlicenseNot gradedqualityNot gradedmaintenanceProvides AI agents with instant access to jurisdiction-specific landlord-tenant law data and verified state statutes across five US states and major cities. It enables users to query legal rules for security deposits, eviction timelines, and habitability standards with sub-10ms local response times.-
- AlicenseAqualityAmaintenanceMultifamily real estate deal analysis — analyze deals, score properties, calculate max offer prices, and look up market data. Four tools for underwriting 2-200 unit apartment properties.496 npm4MIT
Glama MCP Gateway
Add one secure layer between your agents and this server.