Skip to main content
Glama

chathome.lu — Luxembourg Real Estate

Server Details

Luxembourg real estate for AI agents: property search, price estimates, market data, commutes.

If you are the author of this connector, you can claim ownership by verifying the domain or GitHub account it belongs to. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Uptime
95.5% over 55 days
Last Tested
Transport
Streamable HTTP · MCP 2025-11-25
URL

TDQS

A3.8/5.0

Scored across 15 tools

Disambiguation4/5

Most tools have clearly distinct purposes, but get_listing and get_listing_truth overlap substantially as two views of the same listing page, and search_vibe overlaps with search_for_sale/search_rentals for users who want natural-language search. Descriptions mitigate the confusion, so only minimal ambiguity remains.

Naming Consistency5/5

All tool names use snake_case with predictable verb_noun or verb_preposition_noun structures, such as get_listing, search_for_sale, compare_listings, and submit_inquiry. There is no mixing of conventions.

Tool Count5/5

Fifteen tools is at the upper end of the ideal range but appropriate for a rich real-estate domain covering search, listing detail, comparison, valuation, affordability, commute, agencies, lease analysis, and inquiries. Each tool appears to serve a distinct workflow rather than duplicating functionality.

Completeness4/5

The surface covers the core lifecycle from property search and comparison through valuation, market context, agency lookup, inquiry submission, and inquiry status polling. Minor gaps remain, such as saved searches/favorites or viewing scheduling, but agents can work around them.

Available Tools

15 tools
analyze_leaseAnalyze LeaseAInspect

Analyze a caller-provided Luxembourg residential lease PDF or raw text, persist the full user-scoped analysis, and return a compact risk summary. Do not provide payment-card data, government identifiers, health data, passwords, API keys, or authentication codes.

ParametersJSON Schema
NameRequiredDescriptionDefault
textNoRaw lease text when a PDF is not available. Do not pass URLs, payment-card data, government identifiers, health data, passwords, API keys, or authentication codes.
fileNameNo
languageNofr
pdfBase64NoBase64-encoded PDF bytes. Do not pass URLs, payment-card data, government identifiers, health data, passwords, API keys, or authentication codes.

Output Schema

ParametersJSON Schema
NameRequiredDescription
trustYes
clausesYes
isLeaseYes
persistedYes
severityCountsYes
overallRiskScoreYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already indicate non-read-only behavior. The description adds that it persists the full user-scoped analysis and returns a summary, which gives useful behavioral context beyond the annotations. It also includes a safety warning about not sending sensitive data, which is relevant for a tool that processes user-provided content. No contradiction with annotations exists.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is only two sentences, front-loaded with the core purpose and then a warning. It is succinct, with no redundant information, and each sentence adds value.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool has moderate complexity (4 params, non-read-only, output schema). The description covers the main function, side effect (persist), and output. It mentions the Luxembourg context. It does not explain what constitutes a risk summary or edge cases, but given the output schema exists, this is adequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The schema already provides descriptions for text and pdfBase64 (including sensitive data warnings). The description mentions 'lease PDF or raw text' linking to these params but does not clarify filename or language semantics. With 50% schema coverage, the description adds marginal value but does not fully compensate for undocumented parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description clearly states the tool's function: analyzing a Luxembourg residential lease from a PDF or raw text, persisting the analysis, and returning a compact risk summary. It distinguishes itself from sibling tools (which are mostly read/search operations) by being the only lease-analysis tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies when to use: when a caller provides a lease document to analyze. It does not explicitly mention alternatives or when not to use, but the context is clear from the purpose. It would benefit from explicit 'use when...' guidance, but the intent is understandable.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

compare_listingsCompare ListingsA
Read-onlyIdempotent
Inspect

Compare two to eight listings through one normalized AgentListing v2 response, including known and estimated costs, availability, property facts, official flood/noise checks, station frequency, commute summaries, value context, provenance, freshness, duplicates, constraints, and explicit unknown fields.

ParametersJSON Schema
NameRequiredDescriptionDefault
idsYesTwo to eight listing IDs returned by a ChatHome search tool
localeNoResponse locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')

Output Schema

ParametersJSON Schema
NameRequiredDescription
trustYes
listingsYes
notFoundIdsYes
schemaVersionYes
comparisonFieldsYes

TDQS

A3.7/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already cover read-only, idempotent, non-destructive safety properties. The description adds substantial response-content context—costs, availability, flood/noise checks, provenance, freshness, duplicates, explicit unknowns—which helps the agent understand what comes back and how normalized the comparison is.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single front-loaded sentence that begins with the core action and scope before listing response contents. The enumeration is dense but each item appears intended to signal comparison coverage rather than being outright filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The definition is complete enough to call correctly: inputs are fully specified by the schema, safety annotations are present, and an output schema exists. The remaining gap is usage/routing guidance, but the purpose and response scope are otherwise well covered.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the schema already fully documents both parameters, including the 2–8 ID bound and locale enum. The description reinforces the 2–8 listing range but adds no parameter meaning beyond that baseline.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource: 'Compare two to eight listings through one normalized AgentListing v2 response.' The multi-listing scope and explicit bounds distinguish it from single-listing siblings like get_listing and search tools.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies use for comparing listings but gives no explicit when-to-use guidance, prerequisites, or alternatives. It does not say to prefer this over calling get_listing repeatedly or otherwise route the agent among siblings.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_affordabilityGet AffordabilityA
Read-onlyIdempotent
Inspect

Calculate Luxembourg mortgage affordability and state whether the property-price ceiling includes every acquisition cost or only currently known costs.

ParametersJSON Schema
NameRequiredDescriptionDefault
marketRateNo
monthlyDebtsNoExisting monthly debt payments
residenceUseNoResidence use; omitted or unknown preserves an unconfirmed Bëllegen position
householdTypeYes
loanTermYearsNo
residencyTypeYes
employmentTypeYes
annualNetIncomeYesUser-confirmed annual household net income
isFirstTimeBuyerNoDeprecated optional compatibility signal; never proves Bëllegen entitlement
savingsAvailableYesAvailable savings/down payment
isPersonalResidenceNoDeprecated residence-use compatibility flag; prefer residenceUse
maxDebtToIncomeRatioYesExplicit housing-payment share of net income, e.g. 0.35
energyClassDiscountPctNo
bellegenAktEligibleBuyersNoExplicitly confirmed eligible acquirer count
bellegenAktCreditAvailableNoAggregate unused Bëllegen Akt balance explicitly confirmed for the acquirers
floodZoneRateAdjustmentPctNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
trustYes
freshnessYes
confidenceYes
maxPropertyPriceYes
maxPropertyPriceCostBasisYes

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly, idempotent, and non-destructive. The description adds useful behavioral context by stating that the tool reports whether the property-price ceiling includes all acquisition costs or only currently known costs — a non-obvious caveat about how to interpret the result.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single sentence, front-loaded with the action, and no filler. The additional clause about acquisition-cost coverage is meaningful and earns its place.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 16-param tool with an output schema and safety annotations, the description captures the core purpose and the most important interpretative caveat. It does not explain every parameter or selection context, but those gaps are partly filled by the input schema and sibling names.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is only 56%, yet the description adds no parameter-level meaning. It does not explain key inputs such as annualNetIncome, maxDebtToIncomeRatio, savingsAvailable, or the residency/employment enums. The schema does partial work, but the description fails to compensate for the under-documented parameters.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Calculate') with a specific resource ('Luxembourg mortgage affordability') and adds a distinctive output nuance about acquisition-cost coverage. This separates it clearly from siblings like get_price_estimate or get_market_context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool: anytime mortgage affordability in Luxembourg needs to be calculated. It does not explicitly name alternatives or exclusions, but the purpose is self-evidentifying against the sibling list.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_commute_timesGet Commute TimesA
Read-onlyIdempotent
Inspect

Commute time estimates from a Luxembourg commune to a major employment hub (Luxembourg City, Kirchberg EU Quarter, or Belval) across four transport modes.

ParametersJSON Schema
NameRequiredDescriptionDefault
modeYesTransport mode
communeYesLuxembourg commune name or slug to get commute times from, e.g. 'esch-sur-alzette', 'differdange'
destinationYesCommute destination: lux-city (Luxembourg City centre), kirchberg (EU Quarter), or belval (Esch/Belval)

Output Schema

ParametersJSON Schema
NameRequiredDescription
modeYes
staleYes
trustYes
sourceYes
communeYes
minutesYes
distanceKmYes
destinationYes

TDQS

A4.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds scoping context but does not describe behavioral details such as data recency, availability limitations, or response characteristics; with annotations present, this is adequate but not exceptional.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single efficient sentence with no filler. The key distinction (commute estimates from commune to employment hub) is front-loaded, and the extra destination/mode detail is compact and relevant.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

This is a low-complexity, read-only tool with a full input schema and an output schema present. The description, combined with annotations and structured schemas, gives an agent everything needed to select and invoke the tool correctly.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and both enum parameters are documented in the schema. The description summarizes the modes and destinations but does not add meaning beyond the schema, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names the exact resource ('commute time estimates'), the origin scope ('Luxembourg commune'), the destination types, and the four modes. It is specific enough that an agent can distinguish it from the real-estate sibling tools without opening the schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description makes the intended context clear: use when commute estimates from a Luxembourg commune to a major hub are needed. None of the sibling tools cover commuting, so explicit alternatives or exclusions are not required, though no when-to-use language is stated.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_inquiry_statusGet Inquiry StatusA
Read-onlyIdempotent
Inspect

Poll an MCP agent inquiry conversation for agent replies. Returns the current status and full message thread.

ParametersJSON Schema
NameRequiredDescriptionDefault
conversationIdYesThe conversation ID returned by submit_inquiry when kind is conversation_created

Output Schema

ParametersJSON Schema
NameRequiredDescription
trustYes
statusYes
messagesYes
conversationIdYes

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false. The description adds that the tool returns the current status and the full message thread, and 'poll' implies non-blocking repeated calls. This aligns with the idempotent/read-only behavior without contradicting the annotations.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is two concise sentences with zero filler. The first sentence front-loads the action and resource; the second states the return value. Every word contributes meaning, and there is no redundancy with schema or annotations.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a simple one-parameter, read-only polling tool, the description covers the core purpose, return value, and workflow. An output schema exists to define the exact return shape. It could explicitly mention polling until a terminal state, but this is not essential given the simplicity and the annotations.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, and the schema already clearly explains conversationId as 'The conversation ID returned by submit_inquiry when kind is conversation_created'. The tool description adds no additional parameter-specific information, so the baseline score of 3 applies.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses the specific verb 'poll' and identifies the resource as 'MCP agent inquiry conversation' with the purpose 'for agent replies'. This distinguishes it clearly from siblings like submit_inquiry (which creates the conversation) and other search/list tools. It also states the return content: current status and full message thread.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implies a polling workflow after an inquiry has been submitted, as it says 'poll... for agent replies'. The parameter description also references submit_inquiry, linking the tool to its creation counterpart. It does not explicitly name alternatives or exclusions, but the intended usage context is clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_listingGet Listing Details
Read-onlyIdempotent
Inspect

Get the full fail-closed listing page: its public record, price history, area trend, family amenities, neighbourhood facts, property passport, parcel dossier, normalized costs, official checks, transport, provenance, unknown fields, a summary line built from its facts, proven features and measured area facts with their sources, URL, and photos.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesListing ID
localeNoResponse locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')
includePhotosNoAttach thumbnail photos of the listing as image content blocks (default: true). Set false for a lean text-only response.

Output Schema

ParametersJSON Schema
NameRequiredDescription
trustYes
listingYes
pageTextYes
listingPageYes
listingPageContextYes
get_listing_truthGet Listing Truth
Read-onlyIdempotent
Inspect

Trust-layer view of the full fail-closed listing page, including its public record and page context, normalized costs, official checks, sources, freshness, explicit unknowns, and privacy-safe correction totals. No reporter identities are exposed.

ParametersJSON Schema
NameRequiredDescriptionDefault
idYesListing ID
localeNoResponse locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')

Output Schema

ParametersJSON Schema
NameRequiredDescription
trustYes
listingYes
correctionsYes
listingPageYes
listingPageContextYes
get_market_contextGet Market ContextB
Read-onlyIdempotent
Inspect

Get bounded, source-backed property context for a commune, with source dates and unknown states.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoResponse locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')
communeYesLuxembourg commune slug or name (e.g. 'luxembourg', 'esch-sur-alzette', 'kirchberg')

Output Schema

ParametersJSON Schema
NameRequiredDescription
trustYes
communeYes

TDQS

B3.2/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare this as a safe, idempotent, closed-world read, so safety behavior is covered. The description does add useful context beyond that: results are 'bounded' and 'source-backed' with 'source dates,' and some values may be in 'unknown states,' which tells the agent to expect incomplete data. It stops short of describing coverage limits, staleness windows, or granularity.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single dense sentence with no padding, and the key qualifiers (bounded, source-backed, source dates, unknown states) are packed efficiently. It is well-formed, though the extreme density leaves no room for the routing guidance an agent would want.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With full schema coverage and an output schema, return-value explanation is unnecessary, and the provenance/'unknown states' note covers the data-quality angle. The remaining gap is tool selection — nothing explains how this differs from the estimation and search tools it sits beside.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so the commune slug/name and locale enum (including the deprecated 'lb' alias) are fully documented in the schema. The description only echoes that context is per-commune, adding no format or resolution guidance beyond it — baseline 3.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (Get) and resource (bounded, source-backed property context) scoped to a commune, so an agent understands the intent immediately. It does not, however, distinguish this from siblings such as get_price_estimate or search_vibe, which also return commune-level property information.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no stated prerequisites, and no mention of when another tool (e.g. get_price_estimate, get_affordability) would be the better choice. The agent must infer the use case entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_price_estimateGet Price EstimateA
Read-onlyIdempotent
Inspect

AI-powered price estimate for a Luxembourg property. The chathome valuation model is trained and backtested on historical property listing asking prices, not deed-level sales. Returns an estimated price, confidence interval, and comparable listing statistics.

ParametersJSON Schema
NameRequiredDescriptionDefault
areaSqmYesLiving area in square metres
communeYesLuxembourg commune name or slug, e.g. 'luxembourg', 'esch-sur-alzette'
bedroomsNoNumber of bedrooms
energyClassNoEnergy performance certificate class, e.g. 'A', 'B', 'C'
listingTypeYesWhether the property is for rent or sale
propertyTypeYesProperty type, e.g. 'apartment', 'house', 'studio', 'penthouse'
constructionYearNoYear the property was built, e.g. 1995

Output Schema

ParametersJSON Schema
NameRequiredDescription
trustYes
areaSqmYes
communeYes
listingTypeYes
propertyTypeYes
estimatedPriceNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare the tool read-only, idempotent, and non-destructive. The description adds meaningful behavioral context by explaining the model is trained on historical listing asking prices, not deed-level sales, which informs the trustworthiness of the result. This is valuable context beyond the annotation flags.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is compact and front-loaded with the core purpose. The second sentence adds a meaningful caveat about training data, and the third sentence summarizes outputs. It is slightly verbose with 'AI-powered' and the model name, but overall every sentence contributes useful information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the annotations, a fully documented schema, and an output schema, the description is sufficiently complete. It explains the data basis and high-level returns, and the structured fields carry the remaining technical details. No critical operational information for calling the tool appears to be missing.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 100%, so every parameter is already documented in the input schema. The description adds no additional parameter-level meaning, so the baseline of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb and resource: it provides an AI-powered price estimate for a Luxembourg property. It also clarifies the output (estimated price, confidence interval, comparable statistics), making it clearly distinct from sibling tools like get_listing or get_market_context.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description clearly indicates this is the tool for obtaining a property valuation, and the 'estimate' wording implies it should be used when a predicted price is needed rather than raw listing or market context. It does not explicitly name alternatives or exclusions, but the context is sufficiently clear.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_town_agenciesGet Town AgenciesA
Read-onlyIdempotent
Inspect

Get every estate agency with active listings in a supported Luxembourg town, including current buy/rent stock and asking-price ranges.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoResponse locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')
communeYesOne of the supported Luxembourg town names or slugs, e.g. 'Mersch' or 'esch-sur-alzette'

Output Schema

ParametersJSON Schema
NameRequiredDescription
trustYes
sourceYes
communeYes
pageUrlYes
agenciesYes
localityIdYes
measuredAtYes
agencyCountYes
buyListingsYes
communeSlugYes
rentListingsYes
activeListingsYes
unclassifiedListingsYes

TDQS

A3.8/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

The annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered. The description adds the active-listings filter and mentions that output includes buy/rent stock and asking-price ranges, but it does not disclose potential edge cases such as unsupported communes or result-volume behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is one clear sentence that front-loads the action and resource, then adds the key qualifiers ('active listings', 'supported Luxembourg town', 'buy/rent stock and asking-price ranges'). Every part earns its place with no filler.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The tool is simple, has full schema coverage, annotations, and an output schema, so the description does not need to explain return values or safety. It covers the resource, scope, and output focus; it only lacks explicit sibling routing or error-behavior guidance, which would make it fully complete.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 both parameters, including the locale enum and commune name/slug format. The description's mention of a 'supported Luxembourg town' adds little beyond the schema, so the baseline score of 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb ('Get') and names the precise resource: estate agencies with active listings in a supported Luxembourg town. It distinguishes itself from sibling tools by focusing on agencies rather than individual listings, market estimates, or inquiries.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The intended use case is implied clearly: call this when you need agency-level stock and price-range information for a town. However, it does not explicitly state when not to use it, nor does it mention alternatives such as search_for_sale or search_rentals.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

render_listing_cardsShow Listing CardsA
Read-onlyIdempotent
Inspect

Render one to eight exact results from a prior property search as an interactive MCP Apps photo carousel. Call a search tool first, then copy its listing IDs and any returned match scores/reasons without alteration. The tool re-reads canonical public listing facts before display.

ParametersJSON Schema
NameRequiredDescriptionDefault
localeNoResponse locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')
headingNoShort user-facing heading grounded in the search request
listingsYesOne to eight exact listing IDs from search_vibe, search_rentals, or search_for_sale, in display order

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
totalYesExact number of listing objects returned in this response; not the number of matches in the market.
trustNo
sourceNo
hasMoreNo
rankingNo
sessionNo
followUpNo
listingsYes
countKindNo
truncatedNo
nextCursorNo
matchingCountNo
returnedCountNo
understandingNoWhat the engine understood from the request. notChecked lists wishes no returned home is confirmed to have.
searchExhaustiveNo
matchingCountKindNo
excludedUnprovenCountNoUpstream rows omitted because public facts could not prove every requested hard filter.
marketMatchingUpperBoundNo

TDQS

A4.5/5.0
Behavior4/5

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 covered. The description adds real behavioral context beyond that: the tool 're-reads canonical public listing facts before display' (data may be refreshed, not a blind echo of cached input) and enforces the 1–8 display cap. It does not discuss rendering failures or locale fallback behavior.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three tight sentences, front-loaded with the capability and cardinality limit, followed by the prerequisite and the data-freshness note. No filler or restatement of the title.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be described, and annotations carry the safety profile. The description supplies the missing pieces an agent actually needs: the search-first prerequisite, the 1–8 constraint, exact-copy semantics, and the canonical re-read behavior.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3. The description earns above baseline by stressing that listing IDs, scores, and match reasons must be copied 'without alteration' — a constraint on how the parameters must be sourced that the schema only implies. It does not add meaning for locale or heading.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Render') and resource ('one to eight exact results ... as an interactive MCP Apps photo carousel'), and distinguishes itself from the search siblings by operating on results of a prior search rather than performing one. An agent can tell this display tool apart from search_vibe/search_rentals without opening any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Explicit prerequisite: 'Call a search tool first, then copy its listing IDs and any returned match scores/reasons without alteration.' This tells the agent the ordering and the input provenance clearly. It does not state when-not to use it or name a preferred search sibling in the prose, so it stops short of a 5.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_for_saleSearch Properties For SaleA
Read-onlyIdempotent
Inspect

Search properties for sale across supported Grande Région inventory by location, price, rooms, area, property type, and positive-evidence amenities, with explicit sort and completeness metadata. Every sourced result identifies and links the original agency listing and states its latest catalogue re-sighting time; thumbnails of the top results are attached as image content blocks.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort by relevance, listing date, or asking price
limitNoNumber of results to return (max 50, default 20)
gardenNoRequire a source-confirmed garden
localeNoResponse locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')
balconyNoRequire a source-confirmed balcony
communeNoLuxembourg commune name or slug
minBedsNoMinimum number of bedrooms
elevatorNoRequire lift/elevator evidence
maxPriceNoMaximum sale price in EUR
minPriceNoMinimum sale price in EUR
furnishedNoRequire furnished evidence
maxAreaSqmNoMaximum area in m²
minAreaSqmNoMinimum area in m²
parkingTypeNoRequire source-backed parking evidence
petsAllowedNoRequire pets-allowed evidence
minBathroomsNoMinimum number of bathrooms
propertyTypeNoProperty type: apartment, house, villa, etc.
includePhotosNoAttach thumbnail photos of the top results as image content blocks (default: true). Set false for a lean text-only response.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
totalYesExact number of listing objects returned in this response; not the number of matches in the market.
trustNo
sourceNo
hasMoreNo
rankingNo
sessionNo
followUpNo
listingsYes
countKindNo
truncatedNo
nextCursorNo
matchingCountNo
returnedCountNo
understandingNoWhat the engine understood from the request. notChecked lists wishes no returned home is confirmed to have.
searchExhaustiveNo
matchingCountKindNo
excludedUnprovenCountNoUpstream rows omitted because public facts could not prove every requested hard filter.
marketMatchingUpperBoundNo

TDQS

A4.1/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already declare readOnly/idempotent/non-destructive/openWorld=false, so the safety profile is covered. The description adds genuinely useful behavior beyond that: each result links its original agency listing and carries a latest catalogue 're-sighting' time, and thumbnails are returned as image content blocks — non-obvious output behavior worth disclosing.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Two front-loaded sentences: capability and filter scope first, return-shape detail second. Dense but every clause carries information; the only mild padding is the dual phrasing around 'explicit sort and completeness metadata'.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With an output schema present, return values need not be fully spelled out, yet the description still flags the key output traits (attribution links, re-sighting timestamps, image blocks). For an 18-parameter discovery tool this is complete enough; only explicit sibling routing is absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the schema documents all 18 parameters and the baseline would be 3. The description earns a bump by explaining that amenity/feature filters (garden, balcony, elevator, parking, furnished, pets) are 'positive-evidence' filters, which clarifies why those schema booleans are const:true and set user expectations about source-confirmed data.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Search properties for sale') plus the scope of the index ('supported Grande Région inventory') and enumerates the filter dimensions it accepts. It is immediately distinguishable from the sibling search_rentals (sale vs rent) and from get_listing/compare_listings.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Usage is implied by the name and the description (this is the entry-point discovery tool), but there is no explicit guidance on when to prefer it over siblings such as compare_listings, render_listing_cards, or get_listing, nor any stated exclusions or prerequisites. Adequate but with a clear routing gap in a 14-sibling toolset.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_rentalsSearch Rental ListingsA
Read-onlyIdempotent
Inspect

Search active Luxembourg rentals by location, rooms, area, property type, positive-evidence amenities, advertised base rent, or a separate strict confirmed monthly-obligation ceiling. The strict ceiling excludes listings when required recurring charges, fees, evidence, or source freshness are incomplete. Returned counts include explicit completeness metadata; every sourced result links the original agency listing and states its latest catalogue re-sighting time.

ParametersJSON Schema
NameRequiredDescriptionDefault
sortNoSort the proven result set. price-asc means base rent, not all-in monthly cost.
limitNoNumber of results to return (max 50, default 20)
gardenNoRequire a source-confirmed garden
localeNoResponse locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')
balconyNoRequire a source-confirmed balcony
communeNoLuxembourg commune name or slug
minBedsNoMinimum number of bedrooms
elevatorNoRequire positive source evidence of a lift/elevator
maxPriceNoMaximum advertised base monthly rent in EUR, excluding separate charges
minPriceNoMinimum monthly rent in EUR
furnishedNoRequire positive source evidence that the rental is furnished
maxAreaSqmNoMaximum area in m²
minAreaSqmNoMinimum area in m²
parkingTypeNoRequire source-backed parking evidence
petsAllowedNoRequire positive source evidence that pets are allowed
minBathroomsNoMinimum number of bathrooms
propertyTypeNoProperty type: apartment, house, studio, room, etc.
includePhotosNoAttach thumbnail photos of the top results as image content blocks (default: true). Set false for a lean text-only response.
maxTotalMonthlyNoStrict maximum confirmed monthly obligation in EUR: advertised rent plus source-confirmed required recurring charges and fees. Listings with missing, estimated, conflicting, or stale cost evidence are excluded.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
totalYesExact number of listing objects returned in this response; not the number of matches in the market.
trustNo
sourceNo
hasMoreNo
rankingNo
sessionNo
followUpNo
listingsYes
countKindNo
truncatedNo
nextCursorNo
matchingCountNo
returnedCountNo
understandingNoWhat the engine understood from the request. notChecked lists wishes no returned home is confirmed to have.
searchExhaustiveNo
matchingCountKindNo
excludedUnprovenCountNoUpstream rows omitted because public facts could not prove every requested hard filter.
marketMatchingUpperBoundNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already establish readOnly/idempotent/non-destructive and a closed-world catalogue, so the safety burden is light. The description adds real behavioral value beyond them: the strict ceiling deliberately excludes listings with incomplete/stale/conflicting cost evidence, counts carry completeness metadata, and results link the source listing plus a re-sighting timestamp.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Three sentences, front-loaded with the search facets, then the exclusion rule, then the result/metadata behavior. Dense but organized by importance; only mild verbosity in the metadata sentence prevents a 5.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

With 19 parameters, a 100% schema description coverage, and an output schema that documents the return shape, the description only needs to supply the conceptual model — filter categories, the strict-ceiling exclusion policy, and provenance metadata — and it does exactly that. Nothing needed 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.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema coverage is 100%, so the baseline is 3, but the description goes further by framing the two price filters as distinct concepts — 'advertised base rent' versus a 'strict confirmed monthly-obligation ceiling' — and by characterizing amenity filters as positive-evidence requirements, which helps an agent choose the right parameter.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb and resource ('Search active Luxembourg rentals') and enumerates the filterable facets (location, rooms, area, property type, amenities, rent, monthly-obligation ceiling). The Luxembourg/rental scoping cleanly separates it from search_for_sale and search_vibe without needing to open any schema.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description implicitly conveys that this is the rental-search entry point and explains the distinction between the advertised-rent filter and the strict all-in ceiling, which is useful intra-tool guidance. However, it never names alternative siblings (get_listing, compare_listings, search_for_sale) or states when to prefer one over another, leaving routing to inference.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

search_vibeVibe SearchA
Read-onlyIdempotent
Inspect

Preferred natural-language ('vibe') property search. Pass the user's request as prose and the engine matches on lifestyle, mood, proximity, and soft preferences via embeddings + LLM reasoning. Healthy runs return source-grounded match reasons and a 0-100 request-fit score (not a probability); degraded runs explicitly omit ranking claims. Every sourced result identifies and links the original agency listing and states its latest catalogue re-sighting time. The response's understanding block states what was understood; wishes in understanding.notChecked are not confirmed for any returned home. If the requested place cannot be resolved safely, it returns no listings plus a machine-readable unanswerable reason instead of substituting unrelated homes.

ParametersJSON Schema
NameRequiredDescriptionDefault
briefNoThe `session.brief` object from the previous search_vibe response, passed back unchanged to continue that search. Without `followUp` it replays the same search without re-reading the request.
limitNoNumber of results to return (max 50, default 20)
queryYesNatural-language description of what the user wants, in their own words — e.g. "quiet 2-bed near Kirchberg with a balcony under €2000" or "bright family house with a garden, short commute to Belval, energy class A". Lifestyle, vibe, proximity, and soft preferences all work here.
intentNoWhether to search rentals or properties for sale (default: "rent")
localeNoResponse locale: en, fr, de, lu (Luxembourgish), pt (default: en; 'lb' is a deprecated alias for 'lu')
followUpNoA change to the previous search or a question about its results, in the user’s own words — e.g. "cheaper", "like #2 but with a garden", "which one has parking?". Send it with the `brief` from the previous response (`session.brief`) and the same `query`. A question leaves the search unchanged and comes back as `followUp.reply`.
includePhotosNoAttach thumbnail photos of the top results as image content blocks (default: true). Set false for a lean text-only response.
shownListingIdsNoIds of the listings you showed the user, in the order shown, so "#2" or "the second one" in `followUp` points at the right home.

Output Schema

ParametersJSON Schema
NameRequiredDescription
noteNo
totalYesExact number of listing objects returned in this response; not the number of matches in the market.
trustNo
sourceNo
hasMoreNo
rankingNo
sessionNo
followUpNo
listingsYes
countKindNo
truncatedNo
nextCursorNo
matchingCountNo
returnedCountNo
understandingNoWhat the engine understood from the request. notChecked lists wishes no returned home is confirmed to have.
searchExhaustiveNo
matchingCountKindNo
excludedUnprovenCountNoUpstream rows omitted because public facts could not prove every requested hard filter.
marketMatchingUpperBoundNo

TDQS

A4.4/5.0
Behavior5/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Goes well beyond the annotations (readOnly/idempotent/non-destructive/openWorld=false), disclosing degraded-run behavior (ranking claims omitted), that the fit score is not a probability, sourcing/re-sighting guarantees, and that unresolved places yield an unanswerable reason rather than substituted homes.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

Front-loaded with the core purpose and dense with useful specifics, though the final sentences about sourcing and unanswerable results make it fairly long. Nearly every clause earns its place, but it could be tightened.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness5/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For an 8-parameter tool with nested objects and an output schema, the description covers the operational edge cases an agent needs (degraded runs, unconfirmed wishes, unanswerable reasons, follow-up flow) without redundantly restating return shapes.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 all eight parameters including brief, followUp, and shownListingIds. The description adds no syntax or format detail beyond that, so a baseline 3 is appropriate.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb+resource with its distinguishing mechanism: a natural-language 'vibe' search matched via embeddings + LLM reasoning. It is clearly separable from keyword siblings like search_rentals and search_for_sale.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

Declares itself the 'preferred natural-language' search and tells the agent to pass the user's request as prose, which is clear usage context. It stops short of naming the sibling tools it should be chosen over, so the when-not/alternative case is left implicit.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

submit_inquirySubmit InquiryA
Destructive
Inspect

Submit an inquiry about a listing. For chathome-hosted listings creates a conversation thread; for external agency listings returns agency contact details.

ParametersJSON Schema
NameRequiredDescriptionDefault
messageYesInquiry message to send to the listing owner (10–5000 characters)
agentNameNoOptional display name for the inquiring agent
listingIdYesThe ID of the listing to inquire about
contactEmailNoOptional contact email for the inquiring agent

Output Schema

ParametersJSON Schema
NameRequiredDescription
kindYes
trustYes
listingIdNo
conversationIdNo

TDQS

A4.2/5.0
Behavior4/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

Annotations already signal mutation (readOnlyHint=false, destructiveHint=true), and the description adds concrete behavioral details: it either creates a conversation thread or returns agency contact details. This clarifies the side-effect nature beyond the raw hints, though it omits prerequisites like authentication or persistence guarantees.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The description is a single, front-loaded sentence that efficiently conveys the primary action and the two possible outcomes. Every word adds value with no repetition of the title or schema.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Given the output schema exists and annotations cover the safety profile, the description is complete enough for an agent to understand invocation intent and expected behavior. It could mention how to identify listing type, but that is likely available from listing data and not essential for tool selection.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters3/5

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 all four parameters. The description does not add parameter-specific meaning, but the baseline of 3 is appropriate since structured fields carry the semantic load.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose5/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific action ('Submit an inquiry about a listing') and adds a meaningful behavioral distinction: chathome-hosted listings create a conversation thread, while external agency listings return contact details. This clearly differentiates the tool from siblings like get_inquiry_status and get_listing.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines4/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The description gives clear context for when to use the tool and how behavior changes based on listing type. It does not explicitly name alternatives or state when not to use it, so it stops short of a full 5.

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.

  1. 2 tool updates
    • Changedget_listing3 fields changed
      • addedOutput schema / properties / listingPageContext / properties / storedCommute
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listingPageContext / properties / storedPlanning
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • changedOutput schema / properties / listingPageContext / required
        Previous value: -[
        -  "priceHistory",
        -  "priceEvolution",
        -  "familyAmenities",
        -  "neighborhoodFacts",
        -  "countryEvidence",
        -  "transitSummary",
        -  "commuteSummary",
        -  "passport",
        -  "propertyChecks",
        -  "parcelDossier"
        -]New value: +[
        +  "storedPlanning",
        +  "storedCommute",
        +  "priceHistory",
        +  "priceEvolution",
        +  "familyAmenities",
        +  "neighborhoodFacts",
        +  "countryEvidence",
        +  "transitSummary",
        +  "commuteSummary",
        +  "passport",
        +  "propertyChecks",
        +  "parcelDossier"
        +]
    • Changedget_listing_truth3 fields changed
      • addedOutput schema / properties / listingPageContext / properties / storedCommute
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listingPageContext / properties / storedPlanning
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • changedOutput schema / properties / listingPageContext / required
        Previous value: -[
        -  "priceHistory",
        -  "priceEvolution",
        -  "familyAmenities",
        -  "neighborhoodFacts",
        -  "countryEvidence",
        -  "transitSummary",
        -  "commuteSummary",
        -  "passport",
        -  "propertyChecks",
        -  "parcelDossier"
        -]New value: +[
        +  "storedPlanning",
        +  "storedCommute",
        +  "priceHistory",
        +  "priceEvolution",
        +  "familyAmenities",
        +  "neighborhoodFacts",
        +  "countryEvidence",
        +  "transitSummary",
        +  "commuteSummary",
        +  "passport",
        +  "propertyChecks",
        +  "parcelDossier"
        +]
  2. 7 tool updates
    • Changedcompare_listings1 field changed
      • addedOutput schema / properties / listings / items / properties / unknown
        Added value: +{
        +  "description": "Why each missingFields entry is unknown. not_in_search_result means get_listing may know it.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "field": {
        +        "type": "string"
        +      },
        +      "reason": {
        +        "enum": [
        +          "not_stated",
        +          "not_proven",
        +          "conflicted",
        +          "not_in_search_result"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "field",
        +      "reason"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
    • Changedget_listing1 field changed
      • addedOutput schema / properties / listing / properties / unknown
        Added value: +{
        +  "description": "Why each missingFields entry is unknown. not_in_search_result means get_listing may know it.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "field": {
        +        "type": "string"
        +      },
        +      "reason": {
        +        "enum": [
        +          "not_stated",
        +          "not_proven",
        +          "conflicted",
        +          "not_in_search_result"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "field",
        +      "reason"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
    • Changedget_listing_truth1 field changed
      • addedOutput schema / properties / listing / properties / unknown
        Added value: +{
        +  "description": "Why each missingFields entry is unknown. not_in_search_result means get_listing may know it.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "field": {
        +        "type": "string"
        +      },
        +      "reason": {
        +        "enum": [
        +          "not_stated",
        +          "not_proven",
        +          "conflicted",
        +          "not_in_search_result"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "field",
        +      "reason"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
    • Changedrender_listing_cards1 field changed
      • addedOutput schema / properties / listings / items / properties / unknown
        Added value: +{
        +  "description": "Why each missingFields entry is unknown. not_in_search_result means get_listing may know it.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "field": {
        +        "type": "string"
        +      },
        +      "reason": {
        +        "enum": [
        +          "not_stated",
        +          "not_proven",
        +          "conflicted",
        +          "not_in_search_result"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "field",
        +      "reason"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
    • Changedsearch_for_sale1 field changed
      • addedOutput schema / properties / listings / items / properties / unknown
        Added value: +{
        +  "description": "Why each missingFields entry is unknown. not_in_search_result means get_listing may know it.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "field": {
        +        "type": "string"
        +      },
        +      "reason": {
        +        "enum": [
        +          "not_stated",
        +          "not_proven",
        +          "conflicted",
        +          "not_in_search_result"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "field",
        +      "reason"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
    • Changedsearch_rentals1 field changed
      • addedOutput schema / properties / listings / items / properties / unknown
        Added value: +{
        +  "description": "Why each missingFields entry is unknown. not_in_search_result means get_listing may know it.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "field": {
        +        "type": "string"
        +      },
        +      "reason": {
        +        "enum": [
        +          "not_stated",
        +          "not_proven",
        +          "conflicted",
        +          "not_in_search_result"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "field",
        +      "reason"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
    • Changedsearch_vibe1 field changed
      • addedOutput schema / properties / listings / items / properties / unknown
        Added value: +{
        +  "description": "Why each missingFields entry is unknown. not_in_search_result means get_listing may know it.",
        +  "items": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "field": {
        +        "type": "string"
        +      },
        +      "reason": {
        +        "enum": [
        +          "not_stated",
        +          "not_proven",
        +          "conflicted",
        +          "not_in_search_result"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "field",
        +      "reason"
        +    ],
        +    "type": "object"
        +  },
        +  "type": "array"
        +}
  3. 4 tool updates
    • Changedrender_listing_cards4 fields changed
      • removedOutput schema / properties / coverageNotice
        Removed value: -{
        -  "additionalProperties": false,
        -  "properties": {
        -    "reason": {
        -      "const": "outside_luxembourg",
        -      "type": "string"
        -    }
        -  },
        -  "required": [
        -    "reason"
        -  ],
        -  "type": "object"
        -}
      • addedOutput schema / properties / followUp
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "outcome": {
        +      "enum": [
        +        "applied",
        +        "answered"
        +      ],
        +      "type": "string"
        +    },
        +    "reply": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "outcome"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / session
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "brief": {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "brief"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / understanding
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "What the engine understood from the request. notChecked lists wishes no returned home is confirmed to have.",
        +  "properties": {
        +    "checked": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "force": {
        +            "enum": [
        +              "must",
        +              "should",
        +              "nice"
        +            ],
        +            "type": "string"
        +          },
        +          "meaning": {
        +            "type": "string"
        +          },
        +          "needId": {
        +            "type": "string"
        +          },
        +          "operator": {
        +            "type": "string"
        +          },
        +          "unit": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "value": {
        +            "anyOf": [
        +              {
        +                "anyOf": [
        +                  {
        +                    "type": "number"
        +                  },
        +                  {
        +                    "type": "string"
        +                  }
        +                ]
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "meaning",
        +          "needId",
        +          "operator",
        +          "value",
        +          "unit",
        +          "force"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "commutes": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "destination": {
        +            "type": "string"
        +          },
        +          "force": {
        +            "enum": [
        +              "must",
        +              "should",
        +              "nice"
        +            ],
        +            "type": "string"
        +          },
        +          "maxMinutes": {
        +            "anyOf": [
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "mode": {
        +            "anyOf": [
        +              {
        +                "enum": [
        +                  "transit",
        +                  "drive",
        +                  "walk",
        +                  "bike"
        +                ],
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "destination",
        +          "mode",
        +          "maxMinutes",
        +          "force"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "excludedPropertyTypes": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "notChecked": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "force": {
        +            "enum": [
        +              "must",
        +              "should",
        +              "nice"
        +            ],
        +            "type": "string"
        +          },
        +          "meaning": {
        +            "type": "string"
        +          },
        +          "reason": {
        +            "enum": [
        +              "no_listing_fact",
        +              "fact_not_collected_yet"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "meaning",
        +          "force",
        +          "reason"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "offer": {
        +      "enum": [
        +        "whole",
        +        "room",
        +        "either"
        +      ],
        +      "type": "string"
        +    },
        +    "places": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "country": {
        +            "anyOf": [
        +              {
        +                "enum": [
        +                  "LU",
        +                  "FR",
        +                  "BE",
        +                  "DE"
        +                ],
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "force": {
        +            "enum": [
        +              "must",
        +              "should",
        +              "nice"
        +            ],
        +            "type": "string"
        +          },
        +          "kind": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "radiusKm": {
        +            "anyOf": [
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "role": {
        +            "enum": [
        +              "live",
        +              "work",
        +              "near",
        +              "avoid"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "name",
        +          "role",
        +          "kind",
        +          "country",
        +          "radiusKm",
        +          "force"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "propertyTypes": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "transaction": {
        +      "anyOf": [
        +        {
        +          "enum": [
        +            "buy",
        +            "rent"
        +          ],
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "understood": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "understood",
        +    "transaction",
        +    "propertyTypes",
        +    "excludedPropertyTypes",
        +    "offer",
        +    "places",
        +    "commutes",
        +    "checked",
        +    "notChecked"
        +  ],
        +  "type": "object"
        +}
    • Changedsearch_for_sale4 fields changed
      • removedOutput schema / properties / coverageNotice
        Removed value: -{
        -  "additionalProperties": false,
        -  "properties": {
        -    "reason": {
        -      "const": "outside_luxembourg",
        -      "type": "string"
        -    }
        -  },
        -  "required": [
        -    "reason"
        -  ],
        -  "type": "object"
        -}
      • addedOutput schema / properties / followUp
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "outcome": {
        +      "enum": [
        +        "applied",
        +        "answered"
        +      ],
        +      "type": "string"
        +    },
        +    "reply": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "outcome"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / session
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "brief": {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "brief"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / understanding
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "What the engine understood from the request. notChecked lists wishes no returned home is confirmed to have.",
        +  "properties": {
        +    "checked": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "force": {
        +            "enum": [
        +              "must",
        +              "should",
        +              "nice"
        +            ],
        +            "type": "string"
        +          },
        +          "meaning": {
        +            "type": "string"
        +          },
        +          "needId": {
        +            "type": "string"
        +          },
        +          "operator": {
        +            "type": "string"
        +          },
        +          "unit": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "value": {
        +            "anyOf": [
        +              {
        +                "anyOf": [
        +                  {
        +                    "type": "number"
        +                  },
        +                  {
        +                    "type": "string"
        +                  }
        +                ]
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "meaning",
        +          "needId",
        +          "operator",
        +          "value",
        +          "unit",
        +          "force"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "commutes": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "destination": {
        +            "type": "string"
        +          },
        +          "force": {
        +            "enum": [
        +              "must",
        +              "should",
        +              "nice"
        +            ],
        +            "type": "string"
        +          },
        +          "maxMinutes": {
        +            "anyOf": [
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "mode": {
        +            "anyOf": [
        +              {
        +                "enum": [
        +                  "transit",
        +                  "drive",
        +                  "walk",
        +                  "bike"
        +                ],
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "destination",
        +          "mode",
        +          "maxMinutes",
        +          "force"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "excludedPropertyTypes": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "notChecked": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "force": {
        +            "enum": [
        +              "must",
        +              "should",
        +              "nice"
        +            ],
        +            "type": "string"
        +          },
        +          "meaning": {
        +            "type": "string"
        +          },
        +          "reason": {
        +            "enum": [
        +              "no_listing_fact",
        +              "fact_not_collected_yet"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "meaning",
        +          "force",
        +          "reason"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "offer": {
        +      "enum": [
        +        "whole",
        +        "room",
        +        "either"
        +      ],
        +      "type": "string"
        +    },
        +    "places": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "country": {
        +            "anyOf": [
        +              {
        +                "enum": [
        +                  "LU",
        +                  "FR",
        +                  "BE",
        +                  "DE"
        +                ],
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "force": {
        +            "enum": [
        +              "must",
        +              "should",
        +              "nice"
        +            ],
        +            "type": "string"
        +          },
        +          "kind": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "radiusKm": {
        +            "anyOf": [
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "role": {
        +            "enum": [
        +              "live",
        +              "work",
        +              "near",
        +              "avoid"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "name",
        +          "role",
        +          "kind",
        +          "country",
        +          "radiusKm",
        +          "force"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "propertyTypes": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "transaction": {
        +      "anyOf": [
        +        {
        +          "enum": [
        +            "buy",
        +            "rent"
        +          ],
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "understood": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "understood",
        +    "transaction",
        +    "propertyTypes",
        +    "excludedPropertyTypes",
        +    "offer",
        +    "places",
        +    "commutes",
        +    "checked",
        +    "notChecked"
        +  ],
        +  "type": "object"
        +}
    • Changedsearch_rentals4 fields changed
      • removedOutput schema / properties / coverageNotice
        Removed value: -{
        -  "additionalProperties": false,
        -  "properties": {
        -    "reason": {
        -      "const": "outside_luxembourg",
        -      "type": "string"
        -    }
        -  },
        -  "required": [
        -    "reason"
        -  ],
        -  "type": "object"
        -}
      • addedOutput schema / properties / followUp
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "outcome": {
        +      "enum": [
        +        "applied",
        +        "answered"
        +      ],
        +      "type": "string"
        +    },
        +    "reply": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "outcome"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / session
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "brief": {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "brief"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / understanding
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "What the engine understood from the request. notChecked lists wishes no returned home is confirmed to have.",
        +  "properties": {
        +    "checked": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "force": {
        +            "enum": [
        +              "must",
        +              "should",
        +              "nice"
        +            ],
        +            "type": "string"
        +          },
        +          "meaning": {
        +            "type": "string"
        +          },
        +          "needId": {
        +            "type": "string"
        +          },
        +          "operator": {
        +            "type": "string"
        +          },
        +          "unit": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "value": {
        +            "anyOf": [
        +              {
        +                "anyOf": [
        +                  {
        +                    "type": "number"
        +                  },
        +                  {
        +                    "type": "string"
        +                  }
        +                ]
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "meaning",
        +          "needId",
        +          "operator",
        +          "value",
        +          "unit",
        +          "force"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "commutes": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "destination": {
        +            "type": "string"
        +          },
        +          "force": {
        +            "enum": [
        +              "must",
        +              "should",
        +              "nice"
        +            ],
        +            "type": "string"
        +          },
        +          "maxMinutes": {
        +            "anyOf": [
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "mode": {
        +            "anyOf": [
        +              {
        +                "enum": [
        +                  "transit",
        +                  "drive",
        +                  "walk",
        +                  "bike"
        +                ],
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "destination",
        +          "mode",
        +          "maxMinutes",
        +          "force"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "excludedPropertyTypes": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "notChecked": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "force": {
        +            "enum": [
        +              "must",
        +              "should",
        +              "nice"
        +            ],
        +            "type": "string"
        +          },
        +          "meaning": {
        +            "type": "string"
        +          },
        +          "reason": {
        +            "enum": [
        +              "no_listing_fact",
        +              "fact_not_collected_yet"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "meaning",
        +          "force",
        +          "reason"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "offer": {
        +      "enum": [
        +        "whole",
        +        "room",
        +        "either"
        +      ],
        +      "type": "string"
        +    },
        +    "places": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "country": {
        +            "anyOf": [
        +              {
        +                "enum": [
        +                  "LU",
        +                  "FR",
        +                  "BE",
        +                  "DE"
        +                ],
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "force": {
        +            "enum": [
        +              "must",
        +              "should",
        +              "nice"
        +            ],
        +            "type": "string"
        +          },
        +          "kind": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "radiusKm": {
        +            "anyOf": [
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "role": {
        +            "enum": [
        +              "live",
        +              "work",
        +              "near",
        +              "avoid"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "name",
        +          "role",
        +          "kind",
        +          "country",
        +          "radiusKm",
        +          "force"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "propertyTypes": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "transaction": {
        +      "anyOf": [
        +        {
        +          "enum": [
        +            "buy",
        +            "rent"
        +          ],
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "understood": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "understood",
        +    "transaction",
        +    "propertyTypes",
        +    "excludedPropertyTypes",
        +    "offer",
        +    "places",
        +    "commutes",
        +    "checked",
        +    "notChecked"
        +  ],
        +  "type": "object"
        +}
    • Changedsearch_vibe7 fields changed
      • addedInput schema / properties / brief
        Added value: +{
        +  "additionalProperties": {},
        +  "description": "The `session.brief` object from the previous search_vibe response, passed back unchanged to continue that search. Without `followUp` it replays the same search without re-reading the request.",
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
      • addedInput schema / properties / followUp
        Added value: +{
        +  "description": "A change to the previous search or a question about its results, in the user’s own words — e.g. \"cheaper\", \"like #2 but with a garden\", \"which one has parking?\". Send it with the `brief` from the previous response (`session.brief`) and the same `query`. A question leaves the search unchanged and comes back as `followUp.reply`.",
        +  "maxLength": 800,
        +  "minLength": 1,
        +  "type": "string"
        +}
      • addedInput schema / properties / shownListingIds
        Added value: +{
        +  "description": "Ids of the listings you showed the user, in the order shown, so \"#2\" or \"the second one\" in `followUp` points at the right home.",
        +  "items": {
        +    "maxLength": 128,
        +    "minLength": 1,
        +    "type": "string"
        +  },
        +  "maxItems": 10,
        +  "type": "array"
        +}
      • removedOutput schema / properties / coverageNotice
        Removed value: -{
        -  "additionalProperties": false,
        -  "properties": {
        -    "reason": {
        -      "const": "outside_luxembourg",
        -      "type": "string"
        -    }
        -  },
        -  "required": [
        -    "reason"
        -  ],
        -  "type": "object"
        -}
      • addedOutput schema / properties / followUp
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "outcome": {
        +      "enum": [
        +        "applied",
        +        "answered"
        +      ],
        +      "type": "string"
        +    },
        +    "reply": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "outcome"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / session
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "brief": {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    }
        +  },
        +  "required": [
        +    "brief"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / understanding
        Added value: +{
        +  "additionalProperties": false,
        +  "description": "What the engine understood from the request. notChecked lists wishes no returned home is confirmed to have.",
        +  "properties": {
        +    "checked": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "force": {
        +            "enum": [
        +              "must",
        +              "should",
        +              "nice"
        +            ],
        +            "type": "string"
        +          },
        +          "meaning": {
        +            "type": "string"
        +          },
        +          "needId": {
        +            "type": "string"
        +          },
        +          "operator": {
        +            "type": "string"
        +          },
        +          "unit": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "value": {
        +            "anyOf": [
        +              {
        +                "anyOf": [
        +                  {
        +                    "type": "number"
        +                  },
        +                  {
        +                    "type": "string"
        +                  }
        +                ]
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "meaning",
        +          "needId",
        +          "operator",
        +          "value",
        +          "unit",
        +          "force"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "commutes": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "destination": {
        +            "type": "string"
        +          },
        +          "force": {
        +            "enum": [
        +              "must",
        +              "should",
        +              "nice"
        +            ],
        +            "type": "string"
        +          },
        +          "maxMinutes": {
        +            "anyOf": [
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "mode": {
        +            "anyOf": [
        +              {
        +                "enum": [
        +                  "transit",
        +                  "drive",
        +                  "walk",
        +                  "bike"
        +                ],
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "destination",
        +          "mode",
        +          "maxMinutes",
        +          "force"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "excludedPropertyTypes": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "notChecked": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "force": {
        +            "enum": [
        +              "must",
        +              "should",
        +              "nice"
        +            ],
        +            "type": "string"
        +          },
        +          "meaning": {
        +            "type": "string"
        +          },
        +          "reason": {
        +            "enum": [
        +              "no_listing_fact",
        +              "fact_not_collected_yet"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "meaning",
        +          "force",
        +          "reason"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "offer": {
        +      "enum": [
        +        "whole",
        +        "room",
        +        "either"
        +      ],
        +      "type": "string"
        +    },
        +    "places": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "country": {
        +            "anyOf": [
        +              {
        +                "enum": [
        +                  "LU",
        +                  "FR",
        +                  "BE",
        +                  "DE"
        +                ],
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "force": {
        +            "enum": [
        +              "must",
        +              "should",
        +              "nice"
        +            ],
        +            "type": "string"
        +          },
        +          "kind": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "type": "string"
        +          },
        +          "radiusKm": {
        +            "anyOf": [
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "role": {
        +            "enum": [
        +              "live",
        +              "work",
        +              "near",
        +              "avoid"
        +            ],
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "name",
        +          "role",
        +          "kind",
        +          "country",
        +          "radiusKm",
        +          "force"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "propertyTypes": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "type": "array"
        +    },
        +    "transaction": {
        +      "anyOf": [
        +        {
        +          "enum": [
        +            "buy",
        +            "rent"
        +          ],
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "understood": {
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "understood",
        +    "transaction",
        +    "propertyTypes",
        +    "excludedPropertyTypes",
        +    "offer",
        +    "places",
        +    "commutes",
        +    "checked",
        +    "notChecked"
        +  ],
        +  "type": "object"
        +}
  4. 1 tool update
    • Changedget_listing2 fields changed
      • addedOutput schema / properties / pageText
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "areaFacts": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "distanceMeters": {
        +            "anyOf": [
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "floodLevel": {
        +            "anyOf": [
        +              {
        +                "enum": [
        +                  "low",
        +                  "moderate",
        +                  "high",
        +                  "very_high"
        +                ],
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "id": {
        +            "enum": [
        +              "nearest_transit_stop",
        +              "nearest_rail_station",
        +              "nearest_school",
        +              "flood_zone",
        +              "road_noise",
        +              "rail_noise",
        +              "aircraft_noise"
        +            ],
        +            "type": "string"
        +          },
        +          "inFloodZone": {
        +            "anyOf": [
        +              {
        +                "type": "boolean"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "measuredAt": {
        +            "type": "string"
        +          },
        +          "measuredFrom": {
        +            "enum": [
        +              "address",
        +              "block",
        +              "street",
        +              "district"
        +            ],
        +            "type": "string"
        +          },
        +          "measuredFromLabel": {
        +            "type": "string"
        +          },
        +          "name": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "noiseLdenDb": {
        +            "anyOf": [
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "source": {
        +            "enum": [
        +              "public_transport_timetables",
        +              "school_registers",
        +              "official_flood_maps",
        +              "official_noise_maps"
        +            ],
        +            "type": "string"
        +          },
        +          "sourceLabel": {
        +            "type": "string"
        +          },
        +          "text": {
        +            "type": "string"
        +          },
        +          "walkingMinutes": {
        +            "anyOf": [
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "label",
        +          "text",
        +          "walkingMinutes",
        +          "distanceMeters",
        +          "name",
        +          "inFloodZone",
        +          "floodLevel",
        +          "noiseLdenDb",
        +          "source",
        +          "sourceLabel",
        +          "measuredFrom",
        +          "measuredFromLabel",
        +          "measuredAt"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "locale": {
        +      "enum": [
        +        "en",
        +        "fr",
        +        "de",
        +        "lu",
        +        "pt"
        +      ],
        +      "type": "string"
        +    },
        +    "provenFeatures": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "key": {
        +            "type": "string"
        +          },
        +          "label": {
        +            "type": "string"
        +          },
        +          "source": {
        +            "const": "agency_listing_page",
        +            "type": "string"
        +          }
        +        },
        +        "required": [
        +          "key",
        +          "label",
        +          "source"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "schemaVersion": {
        +      "const": "listing-page-text.v1",
        +      "type": "string"
        +    },
        +    "summary": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": false,
        +          "properties": {
        +            "agencyWords": {
        +              "const": false,
        +              "type": "boolean"
        +            },
        +            "basis": {
        +              "const": "listing_facts_and_public_data",
        +              "type": "string"
        +            },
        +            "text": {
        +              "type": "string"
        +            }
        +          },
        +          "required": [
        +            "text",
        +            "basis",
        +            "agencyWords"
        +          ],
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "schemaVersion",
        +    "locale",
        +    "summary",
        +    "provenFeatures",
        +    "areaFacts"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "listing",
        -  "listingPage",
        -  "listingPageContext",
        -  "trust"
        -]New value: +[
        +  "listing",
        +  "listingPage",
        +  "listingPageContext",
        +  "pageText",
        +  "trust"
        +]
  5. 1 tool update
    • Changedsearch_rentals2 fields changed
      • changedInput schema / properties / maxPrice / description
        Previous value: -"Maximum monthly rent in EUR"New value: +"Maximum advertised base monthly rent in EUR, excluding separate charges"
      • addedInput schema / properties / maxTotalMonthly
        Added value: +{
        +  "description": "Strict maximum confirmed monthly obligation in EUR: advertised rent plus source-confirmed required recurring charges and fees. Listings with missing, estimated, conflicting, or stale cost evidence are excluded.",
        +  "type": "number"
        +}
  6. 8 tool updates
    • Addedcompare_listings
    • Changedget_affordability5 fields changed
      • removedInput schema / properties / annualIncome
        Removed value: -{
        -  "description": "Gross annual household income",
        -  "exclusiveMinimum": 0,
        -  "type": "number"
        -}
      • addedInput schema / properties / annualNetIncome
        Added value: +{
        +  "description": "User-confirmed annual household net income",
        +  "exclusiveMinimum": 0,
        +  "type": "number"
        +}
      • removedInput schema / properties / communeTaxRate
        Removed value: -{
        -  "exclusiveMinimum": 0,
        -  "type": "number"
        -}
      • addedInput schema / properties / maxDebtToIncomeRatio
        Added value: +{
        +  "description": "Explicit housing-payment share of net income, e.g. 0.35",
        +  "exclusiveMinimum": 0,
        +  "maximum": 0.6,
        +  "type": "number"
        +}
      • changedInput schema / required
        Previous value: -[
        -  "annualIncome",
        -  "savingsAvailable",
        -  "householdType",
        -  "employmentType",
        -  "residencyType"
        -]New value: +[
        +  "annualNetIncome",
        +  "maxDebtToIncomeRatio",
        +  "savingsAvailable",
        +  "householdType",
        +  "employmentType",
        +  "residencyType"
        +]
    • Changedget_listing20 fields changed
      • addedOutput schema / properties / listing / properties / amenities
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "balcony": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "elevator": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "furnished": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "garden": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "parking": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "petsAllowed": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "stepFreeAccess": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "wheelchairAccessible": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "furnished",
        +    "elevator",
        +    "parking",
        +    "balcony",
        +    "garden",
        +    "petsAllowed",
        +    "stepFreeAccess",
        +    "wheelchairAccessible"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listing / properties / availability
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "availableFrom": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "moveInState": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "offerStatus": {
        +      "enum": [
        +        "available",
        +        "under_offer",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "offerStatus",
        +    "availableFrom",
        +    "moveInState"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listing / properties / duplicates
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "confirmedOtherSources": {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "confirmedSourceCount": {
        +      "exclusiveMinimum": 0,
        +      "maximum": 9007199254740991,
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "confirmedOtherSources",
        +    "confirmedSourceCount"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listing / properties / fieldProvenance
        Added value: +{
        +  "additionalProperties": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "method": {
        +        "enum": [
        +          "source_structured",
        +          "source_text",
        +          "official_dataset",
        +          "calculation",
        +          "manual_review",
        +          "model_extraction",
        +          "model_only",
        +          "unknown"
        +        ],
        +        "type": "string"
        +      },
        +      "observedAt": {
        +        "anyOf": [
        +          {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "publisher": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "sourceUrl": {
        +        "anyOf": [
        +          {
        +            "format": "uri",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "status": {
        +        "enum": [
        +          "confirmed",
        +          "estimated",
        +          "thin_sample",
        +          "stale",
        +          "context_only",
        +          "conflicted",
        +          "not_collected",
        +          "source_unavailable",
        +          "suppressed"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "publisher",
        +      "method",
        +      "sourceUrl",
        +      "observedAt"
        +    ],
        +    "type": "object"
        +  },
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
      • addedOutput schema / properties / listing / properties / history
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "daysListed": {
        +      "anyOf": [
        +        {
        +          "maximum": 9007199254740991,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "firstObservedAt": {
        +      "anyOf": [
        +        {
        +          "format": "date-time",
        +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "firstObservedBasis": {
        +      "const": "source_listing_date_or_chathome_ingest",
        +      "type": "string"
        +    },
        +    "lastChangedAt": {
        +      "anyOf": [
        +        {
        +          "format": "date-time",
        +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "priceDropTotalEur": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "firstObservedAt",
        +    "firstObservedBasis",
        +    "daysListed",
        +    "priceDropTotalEur",
        +    "lastChangedAt"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listing / properties / location
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "address": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "city": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "confidence": {
        +      "enum": [
        +        "verified",
        +        "unverified",
        +        "contradicted",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "district": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "postalCode": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "precision": {
        +      "enum": [
        +        "exact_address",
        +        "street",
        +        "district",
        +        "commune_only",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "city",
        +    "district",
        +    "address",
        +    "postalCode",
        +    "precision",
        +    "confidence"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listing / properties / match
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "allRequiredConstraintsSatisfied": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "reasons": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "maxItems": 3,
        +      "type": "array"
        +    },
        +    "requiredConstraints": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "actual": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "boolean"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "enum": [
        +              "matched",
        +              "not_matched",
        +              "not_verified",
        +              "not_applied"
        +            ],
        +            "type": "string"
        +          },
        +          "target": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "boolean"
        +              },
        +              {
        +                "items": {
        +                  "type": "string"
        +                },
        +                "type": "array"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "status",
        +          "target",
        +          "actual"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "resultKind": {
        +      "anyOf": [
        +        {
        +          "enum": [
        +            "strict_match",
        +            "partial_match",
        +            "relaxed_alternative"
        +          ],
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "allRequiredConstraintsSatisfied",
        +    "resultKind",
        +    "requiredConstraints",
        +    "reasons"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listing / properties / missingFields
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / listing / properties / officialScreening
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / property
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "airConditioning": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "colocation": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "completionYear": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "condition": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "constructionYear": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "floor": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "hasFloorplan": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "heatingEnergy": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "heatingType": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "landAreaSqm": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "privateRoomAreaSqm": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "rentByOwner": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "rooms": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "totalFloors": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "rooms",
        +    "floor",
        +    "totalFloors",
        +    "constructionYear",
        +    "completionYear",
        +    "landAreaSqm",
        +    "privateRoomAreaSqm",
        +    "condition",
        +    "heatingType",
        +    "heatingEnergy",
        +    "airConditioning",
        +    "hasFloorplan",
        +    "rentByOwner",
        +    "colocation"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listing / properties / propertyChecks
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / rent
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "agencyFee": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "agencyFeeBasis": {
        +          "anyOf": [
        +            {
        +              "enum": [
        +                "tenant_share",
        +                "total_commission",
        +                "unknown"
        +              ],
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "baseMonthly": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "chargesIncluded": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "chargesMonthly": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "deposit": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "depositExceedsMaximum": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "depositMaximum": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "estimatedMonthlyTotal": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "estimatedMonthlyTotalIsLowerBound": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "estimatedUtilitiesMonthly": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "exactUpfrontCost": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "firstChargeAdvance": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "heatingMayBeDoubleCounted": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "indicativeInsuranceMonthly": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "knownMonthlyLowerBound": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "knownUpfrontCost": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "mandatoryMoveInFeeTotal": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "mandatoryMoveInFees": {
        +          "items": {
        +            "additionalProperties": {},
        +            "properties": {},
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "mandatoryRecurringFeeTotal": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "mandatoryRecurringFees": {
        +          "items": {
        +            "additionalProperties": {},
        +            "properties": {},
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "monthlyTotal": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "monthlyTotalStatus": {
        +          "anyOf": [
        +            {
        +              "enum": [
        +                "known",
        +                "unknown_charges",
        +                "conflicting_charges",
        +                "invalid_price",
        +                "unknown_mandatory_recurring_fees"
        +              ],
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "reportedDeposit": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "unknownComponents": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "upfrontCostIsExact": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "upfrontCostIsLowerBound": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        }
        +      },
        +      "required": [
        +        "baseMonthly",
        +        "chargesMonthly",
        +        "chargesIncluded",
        +        "monthlyTotal",
        +        "monthlyTotalStatus",
        +        "knownMonthlyLowerBound",
        +        "estimatedMonthlyTotal",
        +        "estimatedMonthlyTotalIsLowerBound",
        +        "estimatedUtilitiesMonthly",
        +        "indicativeInsuranceMonthly",
        +        "heatingMayBeDoubleCounted",
        +        "firstChargeAdvance",
        +        "reportedDeposit",
        +        "deposit",
        +        "depositMaximum",
        +        "depositExceedsMaximum",
        +        "agencyFee",
        +        "agencyFeeBasis",
        +        "mandatoryRecurringFees",
        +        "mandatoryRecurringFeeTotal",
        +        "mandatoryMoveInFees",
        +        "mandatoryMoveInFeeTotal",
        +        "knownUpfrontCost",
        +        "exactUpfrontCost",
        +        "upfrontCostIsLowerBound",
        +        "upfrontCostIsExact",
        +        "unknownComponents"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / schemaVersion
        Added value: +{
        +  "const": "agent-listing.v2",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listing / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "agencyConfirmedAt": {
        +          "anyOf": [
        +            {
        +              "format": "date-time",
        +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "agencyListingId": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "agencyName": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "lastSeenAt": {
        +          "anyOf": [
        +            {
        +              "format": "date-time",
        +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "listingUrl": {
        +          "format": "uri",
        +          "type": "string"
        +        },
        +        "status": {
        +          "enum": [
        +            "active",
        +            "under_offer",
        +            "unknown"
        +          ],
        +          "type": "string"
        +        },
        +        "statusBasis": {
        +          "enum": [
        +            "source_catalog_seen",
        +            "listing_record_active"
        +          ],
        +          "type": "string"
        +        },
        +        "type": {
        +          "const": "original_agency_listing",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "type",
        +        "agencyName",
        +        "listingUrl",
        +        "agencyListingId",
        +        "lastSeenAt",
        +        "status",
        +        "statusBasis",
        +        "agencyConfirmedAt"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / transport
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / valueContext
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "fairPrice": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "marketContext": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "priceIntegrity": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "priceIntegrity",
        +    "fairPrice",
        +    "marketContext"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / properties / listing / required
        Previous value: -[
        -  "id",
        -  "url",
        -  "title",
        -  "status",
        -  "price",
        -  "currency",
        -  "listingType",
        -  "propertyType",
        -  "city",
        -  "district",
        -  "country",
        -  "beds",
        -  "baths",
        -  "areaSqm",
        -  "energyClass",
        -  "imageUrl",
        -  "agencyName",
        -  "latitude",
        -  "longitude"
        -]New value: +[
        +  "schemaVersion",
        +  "id",
        +  "url",
        +  "title",
        +  "status",
        +  "price",
        +  "currency",
        +  "listingType",
        +  "propertyType",
        +  "city",
        +  "district",
        +  "country",
        +  "beds",
        +  "baths",
        +  "areaSqm",
        +  "energyClass",
        +  "imageUrl",
        +  "agencyName",
        +  "source",
        +  "rent",
        +  "availability",
        +  "property",
        +  "location",
        +  "history",
        +  "duplicates",
        +  "amenities",
        +  "fieldProvenance",
        +  "officialScreening",
        +  "propertyChecks",
        +  "transport",
        +  "valueContext",
        +  "missingFields",
        +  "match",
        +  "latitude",
        +  "longitude"
        +]
      • addedOutput schema / properties / listingPage
        Added value: +{
        +  "additionalProperties": {},
        +  "properties": {},
        +  "type": "object"
        +}
      • addedOutput schema / properties / listingPageContext
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "commuteSummary": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "countryEvidence": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "familyAmenities": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "neighborhoodFacts": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "parcelDossier": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "passport": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "priceEvolution": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "priceHistory": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "propertyChecks": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "transitSummary": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "priceHistory",
        +    "priceEvolution",
        +    "familyAmenities",
        +    "neighborhoodFacts",
        +    "countryEvidence",
        +    "transitSummary",
        +    "commuteSummary",
        +    "passport",
        +    "propertyChecks",
        +    "parcelDossier"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "listing",
        -  "trust"
        -]New value: +[
        +  "listing",
        +  "listingPage",
        +  "listingPageContext",
        +  "trust"
        +]
    • Changedget_listing_truth20 fields changed
      • addedOutput schema / properties / listing / properties / amenities
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "balcony": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "elevator": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "furnished": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "garden": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "parking": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "petsAllowed": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "stepFreeAccess": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "wheelchairAccessible": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "furnished",
        +    "elevator",
        +    "parking",
        +    "balcony",
        +    "garden",
        +    "petsAllowed",
        +    "stepFreeAccess",
        +    "wheelchairAccessible"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listing / properties / availability
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "availableFrom": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "moveInState": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "offerStatus": {
        +      "enum": [
        +        "available",
        +        "under_offer",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "offerStatus",
        +    "availableFrom",
        +    "moveInState"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listing / properties / duplicates
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "confirmedOtherSources": {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "confirmedSourceCount": {
        +      "exclusiveMinimum": 0,
        +      "maximum": 9007199254740991,
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "confirmedOtherSources",
        +    "confirmedSourceCount"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listing / properties / fieldProvenance
        Added value: +{
        +  "additionalProperties": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "method": {
        +        "enum": [
        +          "source_structured",
        +          "source_text",
        +          "official_dataset",
        +          "calculation",
        +          "manual_review",
        +          "model_extraction",
        +          "model_only",
        +          "unknown"
        +        ],
        +        "type": "string"
        +      },
        +      "observedAt": {
        +        "anyOf": [
        +          {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "publisher": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "sourceUrl": {
        +        "anyOf": [
        +          {
        +            "format": "uri",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "status": {
        +        "enum": [
        +          "confirmed",
        +          "estimated",
        +          "thin_sample",
        +          "stale",
        +          "context_only",
        +          "conflicted",
        +          "not_collected",
        +          "source_unavailable",
        +          "suppressed"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "publisher",
        +      "method",
        +      "sourceUrl",
        +      "observedAt"
        +    ],
        +    "type": "object"
        +  },
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
      • addedOutput schema / properties / listing / properties / history
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "daysListed": {
        +      "anyOf": [
        +        {
        +          "maximum": 9007199254740991,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "firstObservedAt": {
        +      "anyOf": [
        +        {
        +          "format": "date-time",
        +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "firstObservedBasis": {
        +      "const": "source_listing_date_or_chathome_ingest",
        +      "type": "string"
        +    },
        +    "lastChangedAt": {
        +      "anyOf": [
        +        {
        +          "format": "date-time",
        +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "priceDropTotalEur": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "firstObservedAt",
        +    "firstObservedBasis",
        +    "daysListed",
        +    "priceDropTotalEur",
        +    "lastChangedAt"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listing / properties / location
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "address": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "city": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "confidence": {
        +      "enum": [
        +        "verified",
        +        "unverified",
        +        "contradicted",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "district": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "postalCode": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "precision": {
        +      "enum": [
        +        "exact_address",
        +        "street",
        +        "district",
        +        "commune_only",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "city",
        +    "district",
        +    "address",
        +    "postalCode",
        +    "precision",
        +    "confidence"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listing / properties / match
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "allRequiredConstraintsSatisfied": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "reasons": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "maxItems": 3,
        +      "type": "array"
        +    },
        +    "requiredConstraints": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "actual": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "boolean"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "enum": [
        +              "matched",
        +              "not_matched",
        +              "not_verified",
        +              "not_applied"
        +            ],
        +            "type": "string"
        +          },
        +          "target": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "boolean"
        +              },
        +              {
        +                "items": {
        +                  "type": "string"
        +                },
        +                "type": "array"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "status",
        +          "target",
        +          "actual"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "resultKind": {
        +      "anyOf": [
        +        {
        +          "enum": [
        +            "strict_match",
        +            "partial_match",
        +            "relaxed_alternative"
        +          ],
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "allRequiredConstraintsSatisfied",
        +    "resultKind",
        +    "requiredConstraints",
        +    "reasons"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listing / properties / missingFields
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / listing / properties / officialScreening
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / property
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "airConditioning": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "colocation": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "completionYear": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "condition": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "constructionYear": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "floor": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "hasFloorplan": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "heatingEnergy": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "heatingType": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "landAreaSqm": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "privateRoomAreaSqm": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "rentByOwner": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "rooms": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "totalFloors": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "rooms",
        +    "floor",
        +    "totalFloors",
        +    "constructionYear",
        +    "completionYear",
        +    "landAreaSqm",
        +    "privateRoomAreaSqm",
        +    "condition",
        +    "heatingType",
        +    "heatingEnergy",
        +    "airConditioning",
        +    "hasFloorplan",
        +    "rentByOwner",
        +    "colocation"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listing / properties / propertyChecks
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / rent
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "agencyFee": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "agencyFeeBasis": {
        +          "anyOf": [
        +            {
        +              "enum": [
        +                "tenant_share",
        +                "total_commission",
        +                "unknown"
        +              ],
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "baseMonthly": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "chargesIncluded": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "chargesMonthly": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "deposit": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "depositExceedsMaximum": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "depositMaximum": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "estimatedMonthlyTotal": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "estimatedMonthlyTotalIsLowerBound": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "estimatedUtilitiesMonthly": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "exactUpfrontCost": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "firstChargeAdvance": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "heatingMayBeDoubleCounted": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "indicativeInsuranceMonthly": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "knownMonthlyLowerBound": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "knownUpfrontCost": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "mandatoryMoveInFeeTotal": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "mandatoryMoveInFees": {
        +          "items": {
        +            "additionalProperties": {},
        +            "properties": {},
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "mandatoryRecurringFeeTotal": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "mandatoryRecurringFees": {
        +          "items": {
        +            "additionalProperties": {},
        +            "properties": {},
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "monthlyTotal": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "monthlyTotalStatus": {
        +          "anyOf": [
        +            {
        +              "enum": [
        +                "known",
        +                "unknown_charges",
        +                "conflicting_charges",
        +                "invalid_price",
        +                "unknown_mandatory_recurring_fees"
        +              ],
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "reportedDeposit": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "unknownComponents": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "upfrontCostIsExact": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "upfrontCostIsLowerBound": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        }
        +      },
        +      "required": [
        +        "baseMonthly",
        +        "chargesMonthly",
        +        "chargesIncluded",
        +        "monthlyTotal",
        +        "monthlyTotalStatus",
        +        "knownMonthlyLowerBound",
        +        "estimatedMonthlyTotal",
        +        "estimatedMonthlyTotalIsLowerBound",
        +        "estimatedUtilitiesMonthly",
        +        "indicativeInsuranceMonthly",
        +        "heatingMayBeDoubleCounted",
        +        "firstChargeAdvance",
        +        "reportedDeposit",
        +        "deposit",
        +        "depositMaximum",
        +        "depositExceedsMaximum",
        +        "agencyFee",
        +        "agencyFeeBasis",
        +        "mandatoryRecurringFees",
        +        "mandatoryRecurringFeeTotal",
        +        "mandatoryMoveInFees",
        +        "mandatoryMoveInFeeTotal",
        +        "knownUpfrontCost",
        +        "exactUpfrontCost",
        +        "upfrontCostIsLowerBound",
        +        "upfrontCostIsExact",
        +        "unknownComponents"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / schemaVersion
        Added value: +{
        +  "const": "agent-listing.v2",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listing / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "agencyConfirmedAt": {
        +          "anyOf": [
        +            {
        +              "format": "date-time",
        +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "agencyListingId": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "agencyName": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "lastSeenAt": {
        +          "anyOf": [
        +            {
        +              "format": "date-time",
        +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "listingUrl": {
        +          "format": "uri",
        +          "type": "string"
        +        },
        +        "status": {
        +          "enum": [
        +            "active",
        +            "under_offer",
        +            "unknown"
        +          ],
        +          "type": "string"
        +        },
        +        "statusBasis": {
        +          "enum": [
        +            "source_catalog_seen",
        +            "listing_record_active"
        +          ],
        +          "type": "string"
        +        },
        +        "type": {
        +          "const": "original_agency_listing",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "type",
        +        "agencyName",
        +        "listingUrl",
        +        "agencyListingId",
        +        "lastSeenAt",
        +        "status",
        +        "statusBasis",
        +        "agencyConfirmedAt"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / transport
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / valueContext
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "fairPrice": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "marketContext": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "priceIntegrity": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "priceIntegrity",
        +    "fairPrice",
        +    "marketContext"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / properties / listing / required
        Previous value: -[
        -  "id",
        -  "url",
        -  "title",
        -  "status",
        -  "price",
        -  "currency",
        -  "listingType",
        -  "propertyType",
        -  "city",
        -  "district",
        -  "country",
        -  "beds",
        -  "baths",
        -  "areaSqm",
        -  "energyClass",
        -  "imageUrl",
        -  "agencyName",
        -  "latitude",
        -  "longitude"
        -]New value: +[
        +  "schemaVersion",
        +  "id",
        +  "url",
        +  "title",
        +  "status",
        +  "price",
        +  "currency",
        +  "listingType",
        +  "propertyType",
        +  "city",
        +  "district",
        +  "country",
        +  "beds",
        +  "baths",
        +  "areaSqm",
        +  "energyClass",
        +  "imageUrl",
        +  "agencyName",
        +  "source",
        +  "rent",
        +  "availability",
        +  "property",
        +  "location",
        +  "history",
        +  "duplicates",
        +  "amenities",
        +  "fieldProvenance",
        +  "officialScreening",
        +  "propertyChecks",
        +  "transport",
        +  "valueContext",
        +  "missingFields",
        +  "match",
        +  "latitude",
        +  "longitude"
        +]
      • addedOutput schema / properties / listingPage
        Added value: +{
        +  "additionalProperties": {},
        +  "properties": {},
        +  "type": "object"
        +}
      • addedOutput schema / properties / listingPageContext
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "commuteSummary": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "countryEvidence": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "familyAmenities": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "neighborhoodFacts": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "parcelDossier": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "passport": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "priceEvolution": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "priceHistory": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "propertyChecks": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "transitSummary": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "priceHistory",
        +    "priceEvolution",
        +    "familyAmenities",
        +    "neighborhoodFacts",
        +    "countryEvidence",
        +    "transitSummary",
        +    "commuteSummary",
        +    "passport",
        +    "propertyChecks",
        +    "parcelDossier"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / required
        Previous value: -[
        -  "listing",
        -  "corrections",
        -  "trust"
        -]New value: +[
        +  "listing",
        +  "listingPage",
        +  "listingPageContext",
        +  "corrections",
        +  "trust"
        +]
    • Changedrender_listing_cards25 fields changed
      • addedOutput schema / properties / excludedUnprovenCount
        Added value: +{
        +  "description": "Upstream rows omitted because public facts could not prove every requested hard filter.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / hasMore
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / listings / items / properties / amenities
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "balcony": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "elevator": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "furnished": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "garden": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "parking": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "petsAllowed": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "stepFreeAccess": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "wheelchairAccessible": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "furnished",
        +    "elevator",
        +    "parking",
        +    "balcony",
        +    "garden",
        +    "petsAllowed",
        +    "stepFreeAccess",
        +    "wheelchairAccessible"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / availability
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "availableFrom": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "moveInState": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "offerStatus": {
        +      "enum": [
        +        "available",
        +        "under_offer",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "offerStatus",
        +    "availableFrom",
        +    "moveInState"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / duplicates
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "confirmedOtherSources": {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "confirmedSourceCount": {
        +      "exclusiveMinimum": 0,
        +      "maximum": 9007199254740991,
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "confirmedOtherSources",
        +    "confirmedSourceCount"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / fieldProvenance
        Added value: +{
        +  "additionalProperties": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "method": {
        +        "enum": [
        +          "source_structured",
        +          "source_text",
        +          "official_dataset",
        +          "calculation",
        +          "manual_review",
        +          "model_extraction",
        +          "model_only",
        +          "unknown"
        +        ],
        +        "type": "string"
        +      },
        +      "observedAt": {
        +        "anyOf": [
        +          {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "publisher": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "sourceUrl": {
        +        "anyOf": [
        +          {
        +            "format": "uri",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "status": {
        +        "enum": [
        +          "confirmed",
        +          "estimated",
        +          "thin_sample",
        +          "stale",
        +          "context_only",
        +          "conflicted",
        +          "not_collected",
        +          "source_unavailable",
        +          "suppressed"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "publisher",
        +      "method",
        +      "sourceUrl",
        +      "observedAt"
        +    ],
        +    "type": "object"
        +  },
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / history
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "daysListed": {
        +      "anyOf": [
        +        {
        +          "maximum": 9007199254740991,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "firstObservedAt": {
        +      "anyOf": [
        +        {
        +          "format": "date-time",
        +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "firstObservedBasis": {
        +      "const": "source_listing_date_or_chathome_ingest",
        +      "type": "string"
        +    },
        +    "lastChangedAt": {
        +      "anyOf": [
        +        {
        +          "format": "date-time",
        +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "priceDropTotalEur": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "firstObservedAt",
        +    "firstObservedBasis",
        +    "daysListed",
        +    "priceDropTotalEur",
        +    "lastChangedAt"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / location
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "address": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "city": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "confidence": {
        +      "enum": [
        +        "verified",
        +        "unverified",
        +        "contradicted",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "district": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "postalCode": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "precision": {
        +      "enum": [
        +        "exact_address",
        +        "street",
        +        "district",
        +        "commune_only",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "city",
        +    "district",
        +    "address",
        +    "postalCode",
        +    "precision",
        +    "confidence"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / match
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "allRequiredConstraintsSatisfied": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "reasons": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "maxItems": 3,
        +      "type": "array"
        +    },
        +    "requiredConstraints": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "actual": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "boolean"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "enum": [
        +              "matched",
        +              "not_matched",
        +              "not_verified",
        +              "not_applied"
        +            ],
        +            "type": "string"
        +          },
        +          "target": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "boolean"
        +              },
        +              {
        +                "items": {
        +                  "type": "string"
        +                },
        +                "type": "array"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "status",
        +          "target",
        +          "actual"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "resultKind": {
        +      "anyOf": [
        +        {
        +          "enum": [
        +            "strict_match",
        +            "partial_match",
        +            "relaxed_alternative"
        +          ],
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "allRequiredConstraintsSatisfied",
        +    "resultKind",
        +    "requiredConstraints",
        +    "reasons"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / missingFields
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / listings / items / properties / officialScreening
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / property
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "airConditioning": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "colocation": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "completionYear": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "condition": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "constructionYear": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "floor": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "hasFloorplan": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "heatingEnergy": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "heatingType": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "landAreaSqm": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "privateRoomAreaSqm": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "rentByOwner": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "rooms": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "totalFloors": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "rooms",
        +    "floor",
        +    "totalFloors",
        +    "constructionYear",
        +    "completionYear",
        +    "landAreaSqm",
        +    "privateRoomAreaSqm",
        +    "condition",
        +    "heatingType",
        +    "heatingEnergy",
        +    "airConditioning",
        +    "hasFloorplan",
        +    "rentByOwner",
        +    "colocation"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / propertyChecks
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / rent
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "agencyFee": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "agencyFeeBasis": {
        +          "anyOf": [
        +            {
        +              "enum": [
        +                "tenant_share",
        +                "total_commission",
        +                "unknown"
        +              ],
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "baseMonthly": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "chargesIncluded": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "chargesMonthly": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "deposit": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "depositExceedsMaximum": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "depositMaximum": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "estimatedMonthlyTotal": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "estimatedMonthlyTotalIsLowerBound": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "estimatedUtilitiesMonthly": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "exactUpfrontCost": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "firstChargeAdvance": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "heatingMayBeDoubleCounted": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "indicativeInsuranceMonthly": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "knownMonthlyLowerBound": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "knownUpfrontCost": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "mandatoryMoveInFeeTotal": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "mandatoryMoveInFees": {
        +          "items": {
        +            "additionalProperties": {},
        +            "properties": {},
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "mandatoryRecurringFeeTotal": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "mandatoryRecurringFees": {
        +          "items": {
        +            "additionalProperties": {},
        +            "properties": {},
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "monthlyTotal": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "monthlyTotalStatus": {
        +          "anyOf": [
        +            {
        +              "enum": [
        +                "known",
        +                "unknown_charges",
        +                "conflicting_charges",
        +                "invalid_price",
        +                "unknown_mandatory_recurring_fees"
        +              ],
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "reportedDeposit": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "unknownComponents": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "upfrontCostIsExact": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "upfrontCostIsLowerBound": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        }
        +      },
        +      "required": [
        +        "baseMonthly",
        +        "chargesMonthly",
        +        "chargesIncluded",
        +        "monthlyTotal",
        +        "monthlyTotalStatus",
        +        "knownMonthlyLowerBound",
        +        "estimatedMonthlyTotal",
        +        "estimatedMonthlyTotalIsLowerBound",
        +        "estimatedUtilitiesMonthly",
        +        "indicativeInsuranceMonthly",
        +        "heatingMayBeDoubleCounted",
        +        "firstChargeAdvance",
        +        "reportedDeposit",
        +        "deposit",
        +        "depositMaximum",
        +        "depositExceedsMaximum",
        +        "agencyFee",
        +        "agencyFeeBasis",
        +        "mandatoryRecurringFees",
        +        "mandatoryRecurringFeeTotal",
        +        "mandatoryMoveInFees",
        +        "mandatoryMoveInFeeTotal",
        +        "knownUpfrontCost",
        +        "exactUpfrontCost",
        +        "upfrontCostIsLowerBound",
        +        "upfrontCostIsExact",
        +        "unknownComponents"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / schemaVersion
        Added value: +{
        +  "const": "agent-listing.v2",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "agencyConfirmedAt": {
        +          "anyOf": [
        +            {
        +              "format": "date-time",
        +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "agencyListingId": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "agencyName": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "lastSeenAt": {
        +          "anyOf": [
        +            {
        +              "format": "date-time",
        +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "listingUrl": {
        +          "format": "uri",
        +          "type": "string"
        +        },
        +        "status": {
        +          "enum": [
        +            "active",
        +            "under_offer",
        +            "unknown"
        +          ],
        +          "type": "string"
        +        },
        +        "statusBasis": {
        +          "enum": [
        +            "source_catalog_seen",
        +            "listing_record_active"
        +          ],
        +          "type": "string"
        +        },
        +        "type": {
        +          "const": "original_agency_listing",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "type",
        +        "agencyName",
        +        "listingUrl",
        +        "agencyListingId",
        +        "lastSeenAt",
        +        "status",
        +        "statusBasis",
        +        "agencyConfirmedAt"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / transport
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / valueContext
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "fairPrice": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "marketContext": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "priceIntegrity": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "priceIntegrity",
        +    "fairPrice",
        +    "marketContext"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / properties / listings / items / required
        Previous value: -[
        -  "id",
        -  "url",
        -  "title",
        -  "status",
        -  "price",
        -  "currency",
        -  "listingType",
        -  "propertyType",
        -  "city",
        -  "district",
        -  "country",
        -  "beds",
        -  "baths",
        -  "areaSqm",
        -  "energyClass",
        -  "imageUrl",
        -  "agencyName",
        -  "latitude",
        -  "longitude"
        -]New value: +[
        +  "schemaVersion",
        +  "id",
        +  "url",
        +  "title",
        +  "status",
        +  "price",
        +  "currency",
        +  "listingType",
        +  "propertyType",
        +  "city",
        +  "district",
        +  "country",
        +  "beds",
        +  "baths",
        +  "areaSqm",
        +  "energyClass",
        +  "imageUrl",
        +  "agencyName",
        +  "source",
        +  "rent",
        +  "availability",
        +  "property",
        +  "location",
        +  "history",
        +  "duplicates",
        +  "amenities",
        +  "fieldProvenance",
        +  "officialScreening",
        +  "propertyChecks",
        +  "transport",
        +  "valueContext",
        +  "missingFields",
        +  "match",
        +  "latitude",
        +  "longitude"
        +]
      • addedOutput schema / properties / marketMatchingUpperBound
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / matchingCount
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / matchingCountKind
        Added value: +{
        +  "enum": [
        +    "exact",
        +    "lower_bound",
        +    "unavailable"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / nextCursor
        Added value: +{
        +  "type": "null"
        +}
      • addedOutput schema / properties / returnedCount
        Added value: +{
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / searchExhaustive
        Added value: +{
        +  "type": "boolean"
        +}
    • Changedsearch_for_sale34 fields changed
      • addedInput schema / properties / balcony
        Added value: +{
        +  "const": true,
        +  "description": "Require a source-confirmed balcony",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / elevator
        Added value: +{
        +  "const": true,
        +  "description": "Require lift/elevator evidence",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / furnished
        Added value: +{
        +  "const": true,
        +  "description": "Require furnished evidence",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / garden
        Added value: +{
        +  "const": true,
        +  "description": "Require a source-confirmed garden",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / maxAreaSqm
        Added value: +{
        +  "description": "Maximum area in m²",
        +  "type": "number"
        +}
      • addedInput schema / properties / minBathrooms
        Added value: +{
        +  "description": "Minimum number of bathrooms",
        +  "type": "number"
        +}
      • addedInput schema / properties / parkingType
        Added value: +{
        +  "description": "Require source-backed parking evidence",
        +  "enum": [
        +    "off_street",
        +    "garage",
        +    "covered"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / petsAllowed
        Added value: +{
        +  "const": true,
        +  "description": "Require pets-allowed evidence",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / sort
        Added value: +{
        +  "description": "Sort by relevance, listing date, or asking price",
        +  "enum": [
        +    "relevance",
        +    "newest",
        +    "price-asc",
        +    "price-desc"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / excludedUnprovenCount
        Added value: +{
        +  "description": "Upstream rows omitted because public facts could not prove every requested hard filter.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / hasMore
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / listings / items / properties / amenities
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "balcony": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "elevator": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "furnished": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "garden": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "parking": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "petsAllowed": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "stepFreeAccess": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "wheelchairAccessible": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "furnished",
        +    "elevator",
        +    "parking",
        +    "balcony",
        +    "garden",
        +    "petsAllowed",
        +    "stepFreeAccess",
        +    "wheelchairAccessible"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / availability
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "availableFrom": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "moveInState": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "offerStatus": {
        +      "enum": [
        +        "available",
        +        "under_offer",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "offerStatus",
        +    "availableFrom",
        +    "moveInState"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / duplicates
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "confirmedOtherSources": {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "confirmedSourceCount": {
        +      "exclusiveMinimum": 0,
        +      "maximum": 9007199254740991,
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "confirmedOtherSources",
        +    "confirmedSourceCount"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / fieldProvenance
        Added value: +{
        +  "additionalProperties": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "method": {
        +        "enum": [
        +          "source_structured",
        +          "source_text",
        +          "official_dataset",
        +          "calculation",
        +          "manual_review",
        +          "model_extraction",
        +          "model_only",
        +          "unknown"
        +        ],
        +        "type": "string"
        +      },
        +      "observedAt": {
        +        "anyOf": [
        +          {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "publisher": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "sourceUrl": {
        +        "anyOf": [
        +          {
        +            "format": "uri",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "status": {
        +        "enum": [
        +          "confirmed",
        +          "estimated",
        +          "thin_sample",
        +          "stale",
        +          "context_only",
        +          "conflicted",
        +          "not_collected",
        +          "source_unavailable",
        +          "suppressed"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "publisher",
        +      "method",
        +      "sourceUrl",
        +      "observedAt"
        +    ],
        +    "type": "object"
        +  },
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / history
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "daysListed": {
        +      "anyOf": [
        +        {
        +          "maximum": 9007199254740991,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "firstObservedAt": {
        +      "anyOf": [
        +        {
        +          "format": "date-time",
        +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "firstObservedBasis": {
        +      "const": "source_listing_date_or_chathome_ingest",
        +      "type": "string"
        +    },
        +    "lastChangedAt": {
        +      "anyOf": [
        +        {
        +          "format": "date-time",
        +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "priceDropTotalEur": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "firstObservedAt",
        +    "firstObservedBasis",
        +    "daysListed",
        +    "priceDropTotalEur",
        +    "lastChangedAt"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / location
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "address": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "city": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "confidence": {
        +      "enum": [
        +        "verified",
        +        "unverified",
        +        "contradicted",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "district": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "postalCode": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "precision": {
        +      "enum": [
        +        "exact_address",
        +        "street",
        +        "district",
        +        "commune_only",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "city",
        +    "district",
        +    "address",
        +    "postalCode",
        +    "precision",
        +    "confidence"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / match
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "allRequiredConstraintsSatisfied": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "reasons": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "maxItems": 3,
        +      "type": "array"
        +    },
        +    "requiredConstraints": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "actual": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "boolean"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "enum": [
        +              "matched",
        +              "not_matched",
        +              "not_verified",
        +              "not_applied"
        +            ],
        +            "type": "string"
        +          },
        +          "target": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "boolean"
        +              },
        +              {
        +                "items": {
        +                  "type": "string"
        +                },
        +                "type": "array"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "status",
        +          "target",
        +          "actual"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "resultKind": {
        +      "anyOf": [
        +        {
        +          "enum": [
        +            "strict_match",
        +            "partial_match",
        +            "relaxed_alternative"
        +          ],
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "allRequiredConstraintsSatisfied",
        +    "resultKind",
        +    "requiredConstraints",
        +    "reasons"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / missingFields
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / listings / items / properties / officialScreening
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / property
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "airConditioning": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "colocation": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "completionYear": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "condition": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "constructionYear": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "floor": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "hasFloorplan": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "heatingEnergy": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "heatingType": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "landAreaSqm": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "privateRoomAreaSqm": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "rentByOwner": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "rooms": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "totalFloors": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "rooms",
        +    "floor",
        +    "totalFloors",
        +    "constructionYear",
        +    "completionYear",
        +    "landAreaSqm",
        +    "privateRoomAreaSqm",
        +    "condition",
        +    "heatingType",
        +    "heatingEnergy",
        +    "airConditioning",
        +    "hasFloorplan",
        +    "rentByOwner",
        +    "colocation"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / propertyChecks
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / rent
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "agencyFee": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "agencyFeeBasis": {
        +          "anyOf": [
        +            {
        +              "enum": [
        +                "tenant_share",
        +                "total_commission",
        +                "unknown"
        +              ],
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "baseMonthly": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "chargesIncluded": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "chargesMonthly": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "deposit": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "depositExceedsMaximum": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "depositMaximum": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "estimatedMonthlyTotal": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "estimatedMonthlyTotalIsLowerBound": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "estimatedUtilitiesMonthly": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "exactUpfrontCost": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "firstChargeAdvance": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "heatingMayBeDoubleCounted": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "indicativeInsuranceMonthly": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "knownMonthlyLowerBound": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "knownUpfrontCost": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "mandatoryMoveInFeeTotal": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "mandatoryMoveInFees": {
        +          "items": {
        +            "additionalProperties": {},
        +            "properties": {},
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "mandatoryRecurringFeeTotal": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "mandatoryRecurringFees": {
        +          "items": {
        +            "additionalProperties": {},
        +            "properties": {},
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "monthlyTotal": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "monthlyTotalStatus": {
        +          "anyOf": [
        +            {
        +              "enum": [
        +                "known",
        +                "unknown_charges",
        +                "conflicting_charges",
        +                "invalid_price",
        +                "unknown_mandatory_recurring_fees"
        +              ],
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "reportedDeposit": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "unknownComponents": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "upfrontCostIsExact": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "upfrontCostIsLowerBound": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        }
        +      },
        +      "required": [
        +        "baseMonthly",
        +        "chargesMonthly",
        +        "chargesIncluded",
        +        "monthlyTotal",
        +        "monthlyTotalStatus",
        +        "knownMonthlyLowerBound",
        +        "estimatedMonthlyTotal",
        +        "estimatedMonthlyTotalIsLowerBound",
        +        "estimatedUtilitiesMonthly",
        +        "indicativeInsuranceMonthly",
        +        "heatingMayBeDoubleCounted",
        +        "firstChargeAdvance",
        +        "reportedDeposit",
        +        "deposit",
        +        "depositMaximum",
        +        "depositExceedsMaximum",
        +        "agencyFee",
        +        "agencyFeeBasis",
        +        "mandatoryRecurringFees",
        +        "mandatoryRecurringFeeTotal",
        +        "mandatoryMoveInFees",
        +        "mandatoryMoveInFeeTotal",
        +        "knownUpfrontCost",
        +        "exactUpfrontCost",
        +        "upfrontCostIsLowerBound",
        +        "upfrontCostIsExact",
        +        "unknownComponents"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / schemaVersion
        Added value: +{
        +  "const": "agent-listing.v2",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "agencyConfirmedAt": {
        +          "anyOf": [
        +            {
        +              "format": "date-time",
        +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "agencyListingId": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "agencyName": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "lastSeenAt": {
        +          "anyOf": [
        +            {
        +              "format": "date-time",
        +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "listingUrl": {
        +          "format": "uri",
        +          "type": "string"
        +        },
        +        "status": {
        +          "enum": [
        +            "active",
        +            "under_offer",
        +            "unknown"
        +          ],
        +          "type": "string"
        +        },
        +        "statusBasis": {
        +          "enum": [
        +            "source_catalog_seen",
        +            "listing_record_active"
        +          ],
        +          "type": "string"
        +        },
        +        "type": {
        +          "const": "original_agency_listing",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "type",
        +        "agencyName",
        +        "listingUrl",
        +        "agencyListingId",
        +        "lastSeenAt",
        +        "status",
        +        "statusBasis",
        +        "agencyConfirmedAt"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / transport
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / valueContext
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "fairPrice": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "marketContext": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "priceIntegrity": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "priceIntegrity",
        +    "fairPrice",
        +    "marketContext"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / properties / listings / items / required
        Previous value: -[
        -  "id",
        -  "url",
        -  "title",
        -  "status",
        -  "price",
        -  "currency",
        -  "listingType",
        -  "propertyType",
        -  "city",
        -  "district",
        -  "country",
        -  "beds",
        -  "baths",
        -  "areaSqm",
        -  "energyClass",
        -  "imageUrl",
        -  "agencyName",
        -  "latitude",
        -  "longitude"
        -]New value: +[
        +  "schemaVersion",
        +  "id",
        +  "url",
        +  "title",
        +  "status",
        +  "price",
        +  "currency",
        +  "listingType",
        +  "propertyType",
        +  "city",
        +  "district",
        +  "country",
        +  "beds",
        +  "baths",
        +  "areaSqm",
        +  "energyClass",
        +  "imageUrl",
        +  "agencyName",
        +  "source",
        +  "rent",
        +  "availability",
        +  "property",
        +  "location",
        +  "history",
        +  "duplicates",
        +  "amenities",
        +  "fieldProvenance",
        +  "officialScreening",
        +  "propertyChecks",
        +  "transport",
        +  "valueContext",
        +  "missingFields",
        +  "match",
        +  "latitude",
        +  "longitude"
        +]
      • addedOutput schema / properties / marketMatchingUpperBound
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / matchingCount
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / matchingCountKind
        Added value: +{
        +  "enum": [
        +    "exact",
        +    "lower_bound",
        +    "unavailable"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / nextCursor
        Added value: +{
        +  "type": "null"
        +}
      • addedOutput schema / properties / returnedCount
        Added value: +{
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / searchExhaustive
        Added value: +{
        +  "type": "boolean"
        +}
    • Changedsearch_rentals34 fields changed
      • addedInput schema / properties / balcony
        Added value: +{
        +  "const": true,
        +  "description": "Require a source-confirmed balcony",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / elevator
        Added value: +{
        +  "const": true,
        +  "description": "Require positive source evidence of a lift/elevator",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / furnished
        Added value: +{
        +  "const": true,
        +  "description": "Require positive source evidence that the rental is furnished",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / garden
        Added value: +{
        +  "const": true,
        +  "description": "Require a source-confirmed garden",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / maxAreaSqm
        Added value: +{
        +  "description": "Maximum area in m²",
        +  "type": "number"
        +}
      • addedInput schema / properties / minBathrooms
        Added value: +{
        +  "description": "Minimum number of bathrooms",
        +  "type": "number"
        +}
      • addedInput schema / properties / parkingType
        Added value: +{
        +  "description": "Require source-backed parking evidence",
        +  "enum": [
        +    "off_street",
        +    "garage",
        +    "covered"
        +  ],
        +  "type": "string"
        +}
      • addedInput schema / properties / petsAllowed
        Added value: +{
        +  "const": true,
        +  "description": "Require positive source evidence that pets are allowed",
        +  "type": "boolean"
        +}
      • addedInput schema / properties / sort
        Added value: +{
        +  "description": "Sort the proven result set. price-asc means base rent, not all-in monthly cost.",
        +  "enum": [
        +    "relevance",
        +    "newest",
        +    "price-asc",
        +    "price-desc"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / excludedUnprovenCount
        Added value: +{
        +  "description": "Upstream rows omitted because public facts could not prove every requested hard filter.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / hasMore
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / listings / items / properties / amenities
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "balcony": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "elevator": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "furnished": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "garden": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "parking": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "petsAllowed": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "stepFreeAccess": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "wheelchairAccessible": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "furnished",
        +    "elevator",
        +    "parking",
        +    "balcony",
        +    "garden",
        +    "petsAllowed",
        +    "stepFreeAccess",
        +    "wheelchairAccessible"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / availability
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "availableFrom": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "moveInState": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "offerStatus": {
        +      "enum": [
        +        "available",
        +        "under_offer",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "offerStatus",
        +    "availableFrom",
        +    "moveInState"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / duplicates
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "confirmedOtherSources": {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "confirmedSourceCount": {
        +      "exclusiveMinimum": 0,
        +      "maximum": 9007199254740991,
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "confirmedOtherSources",
        +    "confirmedSourceCount"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / fieldProvenance
        Added value: +{
        +  "additionalProperties": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "method": {
        +        "enum": [
        +          "source_structured",
        +          "source_text",
        +          "official_dataset",
        +          "calculation",
        +          "manual_review",
        +          "model_extraction",
        +          "model_only",
        +          "unknown"
        +        ],
        +        "type": "string"
        +      },
        +      "observedAt": {
        +        "anyOf": [
        +          {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "publisher": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "sourceUrl": {
        +        "anyOf": [
        +          {
        +            "format": "uri",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "status": {
        +        "enum": [
        +          "confirmed",
        +          "estimated",
        +          "thin_sample",
        +          "stale",
        +          "context_only",
        +          "conflicted",
        +          "not_collected",
        +          "source_unavailable",
        +          "suppressed"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "publisher",
        +      "method",
        +      "sourceUrl",
        +      "observedAt"
        +    ],
        +    "type": "object"
        +  },
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / history
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "daysListed": {
        +      "anyOf": [
        +        {
        +          "maximum": 9007199254740991,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "firstObservedAt": {
        +      "anyOf": [
        +        {
        +          "format": "date-time",
        +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "firstObservedBasis": {
        +      "const": "source_listing_date_or_chathome_ingest",
        +      "type": "string"
        +    },
        +    "lastChangedAt": {
        +      "anyOf": [
        +        {
        +          "format": "date-time",
        +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "priceDropTotalEur": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "firstObservedAt",
        +    "firstObservedBasis",
        +    "daysListed",
        +    "priceDropTotalEur",
        +    "lastChangedAt"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / location
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "address": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "city": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "confidence": {
        +      "enum": [
        +        "verified",
        +        "unverified",
        +        "contradicted",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "district": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "postalCode": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "precision": {
        +      "enum": [
        +        "exact_address",
        +        "street",
        +        "district",
        +        "commune_only",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "city",
        +    "district",
        +    "address",
        +    "postalCode",
        +    "precision",
        +    "confidence"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / match
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "allRequiredConstraintsSatisfied": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "reasons": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "maxItems": 3,
        +      "type": "array"
        +    },
        +    "requiredConstraints": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "actual": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "boolean"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "enum": [
        +              "matched",
        +              "not_matched",
        +              "not_verified",
        +              "not_applied"
        +            ],
        +            "type": "string"
        +          },
        +          "target": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "boolean"
        +              },
        +              {
        +                "items": {
        +                  "type": "string"
        +                },
        +                "type": "array"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "status",
        +          "target",
        +          "actual"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "resultKind": {
        +      "anyOf": [
        +        {
        +          "enum": [
        +            "strict_match",
        +            "partial_match",
        +            "relaxed_alternative"
        +          ],
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "allRequiredConstraintsSatisfied",
        +    "resultKind",
        +    "requiredConstraints",
        +    "reasons"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / missingFields
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / listings / items / properties / officialScreening
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / property
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "airConditioning": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "colocation": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "completionYear": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "condition": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "constructionYear": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "floor": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "hasFloorplan": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "heatingEnergy": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "heatingType": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "landAreaSqm": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "privateRoomAreaSqm": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "rentByOwner": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "rooms": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "totalFloors": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "rooms",
        +    "floor",
        +    "totalFloors",
        +    "constructionYear",
        +    "completionYear",
        +    "landAreaSqm",
        +    "privateRoomAreaSqm",
        +    "condition",
        +    "heatingType",
        +    "heatingEnergy",
        +    "airConditioning",
        +    "hasFloorplan",
        +    "rentByOwner",
        +    "colocation"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / propertyChecks
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / rent
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "agencyFee": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "agencyFeeBasis": {
        +          "anyOf": [
        +            {
        +              "enum": [
        +                "tenant_share",
        +                "total_commission",
        +                "unknown"
        +              ],
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "baseMonthly": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "chargesIncluded": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "chargesMonthly": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "deposit": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "depositExceedsMaximum": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "depositMaximum": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "estimatedMonthlyTotal": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "estimatedMonthlyTotalIsLowerBound": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "estimatedUtilitiesMonthly": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "exactUpfrontCost": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "firstChargeAdvance": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "heatingMayBeDoubleCounted": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "indicativeInsuranceMonthly": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "knownMonthlyLowerBound": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "knownUpfrontCost": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "mandatoryMoveInFeeTotal": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "mandatoryMoveInFees": {
        +          "items": {
        +            "additionalProperties": {},
        +            "properties": {},
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "mandatoryRecurringFeeTotal": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "mandatoryRecurringFees": {
        +          "items": {
        +            "additionalProperties": {},
        +            "properties": {},
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "monthlyTotal": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "monthlyTotalStatus": {
        +          "anyOf": [
        +            {
        +              "enum": [
        +                "known",
        +                "unknown_charges",
        +                "conflicting_charges",
        +                "invalid_price",
        +                "unknown_mandatory_recurring_fees"
        +              ],
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "reportedDeposit": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "unknownComponents": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "upfrontCostIsExact": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "upfrontCostIsLowerBound": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        }
        +      },
        +      "required": [
        +        "baseMonthly",
        +        "chargesMonthly",
        +        "chargesIncluded",
        +        "monthlyTotal",
        +        "monthlyTotalStatus",
        +        "knownMonthlyLowerBound",
        +        "estimatedMonthlyTotal",
        +        "estimatedMonthlyTotalIsLowerBound",
        +        "estimatedUtilitiesMonthly",
        +        "indicativeInsuranceMonthly",
        +        "heatingMayBeDoubleCounted",
        +        "firstChargeAdvance",
        +        "reportedDeposit",
        +        "deposit",
        +        "depositMaximum",
        +        "depositExceedsMaximum",
        +        "agencyFee",
        +        "agencyFeeBasis",
        +        "mandatoryRecurringFees",
        +        "mandatoryRecurringFeeTotal",
        +        "mandatoryMoveInFees",
        +        "mandatoryMoveInFeeTotal",
        +        "knownUpfrontCost",
        +        "exactUpfrontCost",
        +        "upfrontCostIsLowerBound",
        +        "upfrontCostIsExact",
        +        "unknownComponents"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / schemaVersion
        Added value: +{
        +  "const": "agent-listing.v2",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "agencyConfirmedAt": {
        +          "anyOf": [
        +            {
        +              "format": "date-time",
        +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "agencyListingId": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "agencyName": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "lastSeenAt": {
        +          "anyOf": [
        +            {
        +              "format": "date-time",
        +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "listingUrl": {
        +          "format": "uri",
        +          "type": "string"
        +        },
        +        "status": {
        +          "enum": [
        +            "active",
        +            "under_offer",
        +            "unknown"
        +          ],
        +          "type": "string"
        +        },
        +        "statusBasis": {
        +          "enum": [
        +            "source_catalog_seen",
        +            "listing_record_active"
        +          ],
        +          "type": "string"
        +        },
        +        "type": {
        +          "const": "original_agency_listing",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "type",
        +        "agencyName",
        +        "listingUrl",
        +        "agencyListingId",
        +        "lastSeenAt",
        +        "status",
        +        "statusBasis",
        +        "agencyConfirmedAt"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / transport
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / valueContext
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "fairPrice": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "marketContext": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "priceIntegrity": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "priceIntegrity",
        +    "fairPrice",
        +    "marketContext"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / properties / listings / items / required
        Previous value: -[
        -  "id",
        -  "url",
        -  "title",
        -  "status",
        -  "price",
        -  "currency",
        -  "listingType",
        -  "propertyType",
        -  "city",
        -  "district",
        -  "country",
        -  "beds",
        -  "baths",
        -  "areaSqm",
        -  "energyClass",
        -  "imageUrl",
        -  "agencyName",
        -  "latitude",
        -  "longitude"
        -]New value: +[
        +  "schemaVersion",
        +  "id",
        +  "url",
        +  "title",
        +  "status",
        +  "price",
        +  "currency",
        +  "listingType",
        +  "propertyType",
        +  "city",
        +  "district",
        +  "country",
        +  "beds",
        +  "baths",
        +  "areaSqm",
        +  "energyClass",
        +  "imageUrl",
        +  "agencyName",
        +  "source",
        +  "rent",
        +  "availability",
        +  "property",
        +  "location",
        +  "history",
        +  "duplicates",
        +  "amenities",
        +  "fieldProvenance",
        +  "officialScreening",
        +  "propertyChecks",
        +  "transport",
        +  "valueContext",
        +  "missingFields",
        +  "match",
        +  "latitude",
        +  "longitude"
        +]
      • addedOutput schema / properties / marketMatchingUpperBound
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / matchingCount
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / matchingCountKind
        Added value: +{
        +  "enum": [
        +    "exact",
        +    "lower_bound",
        +    "unavailable"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / nextCursor
        Added value: +{
        +  "type": "null"
        +}
      • addedOutput schema / properties / returnedCount
        Added value: +{
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / searchExhaustive
        Added value: +{
        +  "type": "boolean"
        +}
    • Changedsearch_vibe25 fields changed
      • addedOutput schema / properties / excludedUnprovenCount
        Added value: +{
        +  "description": "Upstream rows omitted because public facts could not prove every requested hard filter.",
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / hasMore
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / listings / items / properties / amenities
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "balcony": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "elevator": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "furnished": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "garden": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "parking": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "petsAllowed": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "stepFreeAccess": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "wheelchairAccessible": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "furnished",
        +    "elevator",
        +    "parking",
        +    "balcony",
        +    "garden",
        +    "petsAllowed",
        +    "stepFreeAccess",
        +    "wheelchairAccessible"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / availability
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "availableFrom": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "moveInState": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "offerStatus": {
        +      "enum": [
        +        "available",
        +        "under_offer",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "offerStatus",
        +    "availableFrom",
        +    "moveInState"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / duplicates
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "confirmedOtherSources": {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    "confirmedSourceCount": {
        +      "exclusiveMinimum": 0,
        +      "maximum": 9007199254740991,
        +      "type": "integer"
        +    }
        +  },
        +  "required": [
        +    "confirmedOtherSources",
        +    "confirmedSourceCount"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / fieldProvenance
        Added value: +{
        +  "additionalProperties": {
        +    "additionalProperties": false,
        +    "properties": {
        +      "method": {
        +        "enum": [
        +          "source_structured",
        +          "source_text",
        +          "official_dataset",
        +          "calculation",
        +          "manual_review",
        +          "model_extraction",
        +          "model_only",
        +          "unknown"
        +        ],
        +        "type": "string"
        +      },
        +      "observedAt": {
        +        "anyOf": [
        +          {
        +            "format": "date-time",
        +            "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "publisher": {
        +        "anyOf": [
        +          {
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "sourceUrl": {
        +        "anyOf": [
        +          {
        +            "format": "uri",
        +            "type": "string"
        +          },
        +          {
        +            "type": "null"
        +          }
        +        ]
        +      },
        +      "status": {
        +        "enum": [
        +          "confirmed",
        +          "estimated",
        +          "thin_sample",
        +          "stale",
        +          "context_only",
        +          "conflicted",
        +          "not_collected",
        +          "source_unavailable",
        +          "suppressed"
        +        ],
        +        "type": "string"
        +      }
        +    },
        +    "required": [
        +      "status",
        +      "publisher",
        +      "method",
        +      "sourceUrl",
        +      "observedAt"
        +    ],
        +    "type": "object"
        +  },
        +  "propertyNames": {
        +    "type": "string"
        +  },
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / history
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "daysListed": {
        +      "anyOf": [
        +        {
        +          "maximum": 9007199254740991,
        +          "minimum": 0,
        +          "type": "integer"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "firstObservedAt": {
        +      "anyOf": [
        +        {
        +          "format": "date-time",
        +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "firstObservedBasis": {
        +      "const": "source_listing_date_or_chathome_ingest",
        +      "type": "string"
        +    },
        +    "lastChangedAt": {
        +      "anyOf": [
        +        {
        +          "format": "date-time",
        +          "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "priceDropTotalEur": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "firstObservedAt",
        +    "firstObservedBasis",
        +    "daysListed",
        +    "priceDropTotalEur",
        +    "lastChangedAt"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / location
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "address": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "city": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "confidence": {
        +      "enum": [
        +        "verified",
        +        "unverified",
        +        "contradicted",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    },
        +    "district": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "postalCode": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "precision": {
        +      "enum": [
        +        "exact_address",
        +        "street",
        +        "district",
        +        "commune_only",
        +        "unknown"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "city",
        +    "district",
        +    "address",
        +    "postalCode",
        +    "precision",
        +    "confidence"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / match
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "allRequiredConstraintsSatisfied": {
        +      "anyOf": [
        +        {
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "reasons": {
        +      "items": {
        +        "type": "string"
        +      },
        +      "maxItems": 3,
        +      "type": "array"
        +    },
        +    "requiredConstraints": {
        +      "items": {
        +        "additionalProperties": false,
        +        "properties": {
        +          "actual": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "boolean"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          },
        +          "id": {
        +            "type": "string"
        +          },
        +          "status": {
        +            "enum": [
        +              "matched",
        +              "not_matched",
        +              "not_verified",
        +              "not_applied"
        +            ],
        +            "type": "string"
        +          },
        +          "target": {
        +            "anyOf": [
        +              {
        +                "type": "string"
        +              },
        +              {
        +                "type": "number"
        +              },
        +              {
        +                "type": "boolean"
        +              },
        +              {
        +                "items": {
        +                  "type": "string"
        +                },
        +                "type": "array"
        +              },
        +              {
        +                "type": "null"
        +              }
        +            ]
        +          }
        +        },
        +        "required": [
        +          "id",
        +          "status",
        +          "target",
        +          "actual"
        +        ],
        +        "type": "object"
        +      },
        +      "type": "array"
        +    },
        +    "resultKind": {
        +      "anyOf": [
        +        {
        +          "enum": [
        +            "strict_match",
        +            "partial_match",
        +            "relaxed_alternative"
        +          ],
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "allRequiredConstraintsSatisfied",
        +    "resultKind",
        +    "requiredConstraints",
        +    "reasons"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / missingFields
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / listings / items / properties / officialScreening
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / property
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "airConditioning": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "colocation": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "completionYear": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "condition": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "constructionYear": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "floor": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "hasFloorplan": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "heatingEnergy": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "heatingType": {
        +      "anyOf": [
        +        {
        +          "type": "string"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "landAreaSqm": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "privateRoomAreaSqm": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "rentByOwner": {
        +      "anyOf": [
        +        {
        +          "const": true,
        +          "type": "boolean"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "rooms": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "totalFloors": {
        +      "anyOf": [
        +        {
        +          "type": "number"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "rooms",
        +    "floor",
        +    "totalFloors",
        +    "constructionYear",
        +    "completionYear",
        +    "landAreaSqm",
        +    "privateRoomAreaSqm",
        +    "condition",
        +    "heatingType",
        +    "heatingEnergy",
        +    "airConditioning",
        +    "hasFloorplan",
        +    "rentByOwner",
        +    "colocation"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / listings / items / properties / propertyChecks
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / rent
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "agencyFee": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "agencyFeeBasis": {
        +          "anyOf": [
        +            {
        +              "enum": [
        +                "tenant_share",
        +                "total_commission",
        +                "unknown"
        +              ],
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "baseMonthly": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "chargesIncluded": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "chargesMonthly": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "deposit": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "depositExceedsMaximum": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "depositMaximum": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "estimatedMonthlyTotal": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "estimatedMonthlyTotalIsLowerBound": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "estimatedUtilitiesMonthly": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "exactUpfrontCost": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "firstChargeAdvance": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "heatingMayBeDoubleCounted": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "indicativeInsuranceMonthly": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "knownMonthlyLowerBound": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "knownUpfrontCost": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "mandatoryMoveInFeeTotal": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "mandatoryMoveInFees": {
        +          "items": {
        +            "additionalProperties": {},
        +            "properties": {},
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "mandatoryRecurringFeeTotal": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "mandatoryRecurringFees": {
        +          "items": {
        +            "additionalProperties": {},
        +            "properties": {},
        +            "type": "object"
        +          },
        +          "type": "array"
        +        },
        +        "monthlyTotal": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "monthlyTotalStatus": {
        +          "anyOf": [
        +            {
        +              "enum": [
        +                "known",
        +                "unknown_charges",
        +                "conflicting_charges",
        +                "invalid_price",
        +                "unknown_mandatory_recurring_fees"
        +              ],
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "reportedDeposit": {
        +          "anyOf": [
        +            {
        +              "type": "number"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "unknownComponents": {
        +          "items": {
        +            "type": "string"
        +          },
        +          "type": "array"
        +        },
        +        "upfrontCostIsExact": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "upfrontCostIsLowerBound": {
        +          "anyOf": [
        +            {
        +              "type": "boolean"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        }
        +      },
        +      "required": [
        +        "baseMonthly",
        +        "chargesMonthly",
        +        "chargesIncluded",
        +        "monthlyTotal",
        +        "monthlyTotalStatus",
        +        "knownMonthlyLowerBound",
        +        "estimatedMonthlyTotal",
        +        "estimatedMonthlyTotalIsLowerBound",
        +        "estimatedUtilitiesMonthly",
        +        "indicativeInsuranceMonthly",
        +        "heatingMayBeDoubleCounted",
        +        "firstChargeAdvance",
        +        "reportedDeposit",
        +        "deposit",
        +        "depositMaximum",
        +        "depositExceedsMaximum",
        +        "agencyFee",
        +        "agencyFeeBasis",
        +        "mandatoryRecurringFees",
        +        "mandatoryRecurringFeeTotal",
        +        "mandatoryMoveInFees",
        +        "mandatoryMoveInFeeTotal",
        +        "knownUpfrontCost",
        +        "exactUpfrontCost",
        +        "upfrontCostIsLowerBound",
        +        "upfrontCostIsExact",
        +        "unknownComponents"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / schemaVersion
        Added value: +{
        +  "const": "agent-listing.v2",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / source
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": false,
        +      "properties": {
        +        "agencyConfirmedAt": {
        +          "anyOf": [
        +            {
        +              "format": "date-time",
        +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "agencyListingId": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "agencyName": {
        +          "anyOf": [
        +            {
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "lastSeenAt": {
        +          "anyOf": [
        +            {
        +              "format": "date-time",
        +              "pattern": "^(?:(?:\\d\\d[2468][048]|\\d\\d[13579][26]|\\d\\d0[48]|[02468][048]00|[13579][26]00)-02-29|\\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\\d|30)|(?:02)-(?:0[1-9]|1\\d|2[0-8])))T(?:(?:[01]\\d|2[0-3]):[0-5]\\d(?::[0-5]\\d(?:\\.\\d+)?)?(?:Z))$",
        +              "type": "string"
        +            },
        +            {
        +              "type": "null"
        +            }
        +          ]
        +        },
        +        "listingUrl": {
        +          "format": "uri",
        +          "type": "string"
        +        },
        +        "status": {
        +          "enum": [
        +            "active",
        +            "under_offer",
        +            "unknown"
        +          ],
        +          "type": "string"
        +        },
        +        "statusBasis": {
        +          "enum": [
        +            "source_catalog_seen",
        +            "listing_record_active"
        +          ],
        +          "type": "string"
        +        },
        +        "type": {
        +          "const": "original_agency_listing",
        +          "type": "string"
        +        }
        +      },
        +      "required": [
        +        "type",
        +        "agencyName",
        +        "listingUrl",
        +        "agencyListingId",
        +        "lastSeenAt",
        +        "status",
        +        "statusBasis",
        +        "agencyConfirmedAt"
        +      ],
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / transport
        Added value: +{
        +  "anyOf": [
        +    {
        +      "additionalProperties": {},
        +      "properties": {},
        +      "type": "object"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / valueContext
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "fairPrice": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "marketContext": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    },
        +    "priceIntegrity": {
        +      "anyOf": [
        +        {
        +          "additionalProperties": {},
        +          "properties": {},
        +          "type": "object"
        +        },
        +        {
        +          "type": "null"
        +        }
        +      ]
        +    }
        +  },
        +  "required": [
        +    "priceIntegrity",
        +    "fairPrice",
        +    "marketContext"
        +  ],
        +  "type": "object"
        +}
      • changedOutput schema / properties / listings / items / required
        Previous value: -[
        -  "id",
        -  "url",
        -  "title",
        -  "status",
        -  "price",
        -  "currency",
        -  "listingType",
        -  "propertyType",
        -  "city",
        -  "district",
        -  "country",
        -  "beds",
        -  "baths",
        -  "areaSqm",
        -  "energyClass",
        -  "imageUrl",
        -  "agencyName",
        -  "latitude",
        -  "longitude"
        -]New value: +[
        +  "schemaVersion",
        +  "id",
        +  "url",
        +  "title",
        +  "status",
        +  "price",
        +  "currency",
        +  "listingType",
        +  "propertyType",
        +  "city",
        +  "district",
        +  "country",
        +  "beds",
        +  "baths",
        +  "areaSqm",
        +  "energyClass",
        +  "imageUrl",
        +  "agencyName",
        +  "source",
        +  "rent",
        +  "availability",
        +  "property",
        +  "location",
        +  "history",
        +  "duplicates",
        +  "amenities",
        +  "fieldProvenance",
        +  "officialScreening",
        +  "propertyChecks",
        +  "transport",
        +  "valueContext",
        +  "missingFields",
        +  "match",
        +  "latitude",
        +  "longitude"
        +]
      • addedOutput schema / properties / marketMatchingUpperBound
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / matchingCount
        Added value: +{
        +  "anyOf": [
        +    {
        +      "maximum": 9007199254740991,
        +      "minimum": 0,
        +      "type": "integer"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / matchingCountKind
        Added value: +{
        +  "enum": [
        +    "exact",
        +    "lower_bound",
        +    "unavailable"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / nextCursor
        Added value: +{
        +  "type": "null"
        +}
      • addedOutput schema / properties / returnedCount
        Added value: +{
        +  "maximum": 9007199254740991,
        +  "minimum": 0,
        +  "type": "integer"
        +}
      • addedOutput schema / properties / searchExhaustive
        Added value: +{
        +  "type": "boolean"
        +}
  7. 6 tool updates
    • Changedget_listing28 fields changed
      • addedOutput schema / properties / listing / properties / agencyName
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / areaSqm
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / baths
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / beds
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / charges
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / city
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / country
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "LU",
        +        "FR",
        +        "BE",
        +        "DE"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / currency
        Added value: +{
        +  "const": "EUR",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listing / properties / description
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / district
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / energyClass
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / features
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / listing / properties / hasSourceCheckedFacts
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / listing / properties / id
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / listing / properties / imageUrl
        Added value: +{
        +  "anyOf": [
        +    {
        +      "format": "uri",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / latitude
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / listingType
        Added value: +{
        +  "enum": [
        +    "rent",
        +    "sale"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / listing / properties / longitude
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / matchReasons
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "maxItems": 3,
        +  "type": "array"
        +}
      • addedOutput schema / properties / listing / properties / photoUrls
        Added value: +{
        +  "items": {
        +    "format": "uri",
        +    "type": "string"
        +  },
        +  "maxItems": 5,
        +  "type": "array"
        +}
      • addedOutput schema / properties / listing / properties / price
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / pricePerSqm
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / propertyType
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / score
        Added value: +{
        +  "maximum": 100,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedOutput schema / properties / listing / properties / status
        Added value: +{
        +  "const": "active",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listing / properties / title
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / listing / properties / url
        Added value: +{
        +  "format": "uri",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listing / required
        Added value: +[
        +  "id",
        +  "url",
        +  "title",
        +  "status",
        +  "price",
        +  "currency",
        +  "listingType",
        +  "propertyType",
        +  "city",
        +  "district",
        +  "country",
        +  "beds",
        +  "baths",
        +  "areaSqm",
        +  "energyClass",
        +  "imageUrl",
        +  "agencyName",
        +  "latitude",
        +  "longitude"
        +]
    • Changedget_listing_truth28 fields changed
      • addedOutput schema / properties / listing / properties / agencyName
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / areaSqm
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / baths
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / beds
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / charges
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / city
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / country
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "LU",
        +        "FR",
        +        "BE",
        +        "DE"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / currency
        Added value: +{
        +  "const": "EUR",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listing / properties / description
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / district
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / energyClass
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / features
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / listing / properties / hasSourceCheckedFacts
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / listing / properties / id
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / listing / properties / imageUrl
        Added value: +{
        +  "anyOf": [
        +    {
        +      "format": "uri",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / latitude
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / listingType
        Added value: +{
        +  "enum": [
        +    "rent",
        +    "sale"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / listing / properties / longitude
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / matchReasons
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "maxItems": 3,
        +  "type": "array"
        +}
      • addedOutput schema / properties / listing / properties / photoUrls
        Added value: +{
        +  "items": {
        +    "format": "uri",
        +    "type": "string"
        +  },
        +  "maxItems": 5,
        +  "type": "array"
        +}
      • addedOutput schema / properties / listing / properties / price
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / pricePerSqm
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / propertyType
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listing / properties / score
        Added value: +{
        +  "maximum": 100,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedOutput schema / properties / listing / properties / status
        Added value: +{
        +  "const": "active",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listing / properties / title
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / listing / properties / url
        Added value: +{
        +  "format": "uri",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listing / required
        Added value: +[
        +  "id",
        +  "url",
        +  "title",
        +  "status",
        +  "price",
        +  "currency",
        +  "listingType",
        +  "propertyType",
        +  "city",
        +  "district",
        +  "country",
        +  "beds",
        +  "baths",
        +  "areaSqm",
        +  "energyClass",
        +  "imageUrl",
        +  "agencyName",
        +  "latitude",
        +  "longitude"
        +]
    • Changedrender_listing_cards34 fields changed
      • addedOutput schema / properties / countKind
        Added value: +{
        +  "const": "returned",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / agencyName
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / areaSqm
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / baths
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / beds
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / charges
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / city
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / country
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "LU",
        +        "FR",
        +        "BE",
        +        "DE"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / currency
        Added value: +{
        +  "const": "EUR",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / description
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / district
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / energyClass
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / features
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / listings / items / properties / hasSourceCheckedFacts
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / listings / items / properties / id
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / imageUrl
        Added value: +{
        +  "anyOf": [
        +    {
        +      "format": "uri",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / latitude
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / listingType
        Added value: +{
        +  "enum": [
        +    "rent",
        +    "sale"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / longitude
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / matchReasons
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "maxItems": 3,
        +  "type": "array"
        +}
      • addedOutput schema / properties / listings / items / properties / photoUrls
        Added value: +{
        +  "items": {
        +    "format": "uri",
        +    "type": "string"
        +  },
        +  "maxItems": 5,
        +  "type": "array"
        +}
      • addedOutput schema / properties / listings / items / properties / price
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / pricePerSqm
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / propertyType
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / score
        Added value: +{
        +  "maximum": 100,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedOutput schema / properties / listings / items / properties / status
        Added value: +{
        +  "const": "active",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / title
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / url
        Added value: +{
        +  "format": "uri",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / required
        Added value: +[
        +  "id",
        +  "url",
        +  "title",
        +  "status",
        +  "price",
        +  "currency",
        +  "listingType",
        +  "propertyType",
        +  "city",
        +  "district",
        +  "country",
        +  "beds",
        +  "baths",
        +  "areaSqm",
        +  "energyClass",
        +  "imageUrl",
        +  "agencyName",
        +  "latitude",
        +  "longitude"
        +]
      • addedOutput schema / properties / ranking
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "planFingerprint": {
        +      "type": "string"
        +    },
        +    "probability": {
        +      "const": false,
        +      "type": "boolean"
        +    },
        +    "scoreKind": {
        +      "const": "request_fit",
        +      "type": "string"
        +    },
        +    "status": {
        +      "enum": [
        +        "available",
        +        "degraded"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "status",
        +    "scoreKind",
        +    "probability"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / total / description
        Added value: +"Exact number of listing objects returned in this response; not the number of matches in the market."
      • addedOutput schema / properties / total / maximum
        Added value: +9007199254740991
      • addedOutput schema / properties / total / minimum
        Added value: +0
      • changedOutput schema / properties / total / type
        Previous value: -"number"New value: +"integer"
    • Changedsearch_for_sale34 fields changed
      • addedOutput schema / properties / countKind
        Added value: +{
        +  "const": "returned",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / agencyName
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / areaSqm
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / baths
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / beds
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / charges
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / city
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / country
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "LU",
        +        "FR",
        +        "BE",
        +        "DE"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / currency
        Added value: +{
        +  "const": "EUR",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / description
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / district
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / energyClass
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / features
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / listings / items / properties / hasSourceCheckedFacts
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / listings / items / properties / id
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / imageUrl
        Added value: +{
        +  "anyOf": [
        +    {
        +      "format": "uri",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / latitude
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / listingType
        Added value: +{
        +  "enum": [
        +    "rent",
        +    "sale"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / longitude
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / matchReasons
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "maxItems": 3,
        +  "type": "array"
        +}
      • addedOutput schema / properties / listings / items / properties / photoUrls
        Added value: +{
        +  "items": {
        +    "format": "uri",
        +    "type": "string"
        +  },
        +  "maxItems": 5,
        +  "type": "array"
        +}
      • addedOutput schema / properties / listings / items / properties / price
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / pricePerSqm
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / propertyType
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / score
        Added value: +{
        +  "maximum": 100,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedOutput schema / properties / listings / items / properties / status
        Added value: +{
        +  "const": "active",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / title
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / url
        Added value: +{
        +  "format": "uri",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / required
        Added value: +[
        +  "id",
        +  "url",
        +  "title",
        +  "status",
        +  "price",
        +  "currency",
        +  "listingType",
        +  "propertyType",
        +  "city",
        +  "district",
        +  "country",
        +  "beds",
        +  "baths",
        +  "areaSqm",
        +  "energyClass",
        +  "imageUrl",
        +  "agencyName",
        +  "latitude",
        +  "longitude"
        +]
      • addedOutput schema / properties / ranking
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "planFingerprint": {
        +      "type": "string"
        +    },
        +    "probability": {
        +      "const": false,
        +      "type": "boolean"
        +    },
        +    "scoreKind": {
        +      "const": "request_fit",
        +      "type": "string"
        +    },
        +    "status": {
        +      "enum": [
        +        "available",
        +        "degraded"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "status",
        +    "scoreKind",
        +    "probability"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / total / description
        Added value: +"Exact number of listing objects returned in this response; not the number of matches in the market."
      • addedOutput schema / properties / total / maximum
        Added value: +9007199254740991
      • addedOutput schema / properties / total / minimum
        Added value: +0
      • changedOutput schema / properties / total / type
        Previous value: -"number"New value: +"integer"
    • Changedsearch_rentals34 fields changed
      • addedOutput schema / properties / countKind
        Added value: +{
        +  "const": "returned",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / agencyName
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / areaSqm
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / baths
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / beds
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / charges
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / city
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / country
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "LU",
        +        "FR",
        +        "BE",
        +        "DE"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / currency
        Added value: +{
        +  "const": "EUR",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / description
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / district
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / energyClass
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / features
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / listings / items / properties / hasSourceCheckedFacts
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / listings / items / properties / id
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / imageUrl
        Added value: +{
        +  "anyOf": [
        +    {
        +      "format": "uri",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / latitude
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / listingType
        Added value: +{
        +  "enum": [
        +    "rent",
        +    "sale"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / longitude
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / matchReasons
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "maxItems": 3,
        +  "type": "array"
        +}
      • addedOutput schema / properties / listings / items / properties / photoUrls
        Added value: +{
        +  "items": {
        +    "format": "uri",
        +    "type": "string"
        +  },
        +  "maxItems": 5,
        +  "type": "array"
        +}
      • addedOutput schema / properties / listings / items / properties / price
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / pricePerSqm
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / propertyType
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / score
        Added value: +{
        +  "maximum": 100,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedOutput schema / properties / listings / items / properties / status
        Added value: +{
        +  "const": "active",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / title
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / url
        Added value: +{
        +  "format": "uri",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / required
        Added value: +[
        +  "id",
        +  "url",
        +  "title",
        +  "status",
        +  "price",
        +  "currency",
        +  "listingType",
        +  "propertyType",
        +  "city",
        +  "district",
        +  "country",
        +  "beds",
        +  "baths",
        +  "areaSqm",
        +  "energyClass",
        +  "imageUrl",
        +  "agencyName",
        +  "latitude",
        +  "longitude"
        +]
      • addedOutput schema / properties / ranking
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "planFingerprint": {
        +      "type": "string"
        +    },
        +    "probability": {
        +      "const": false,
        +      "type": "boolean"
        +    },
        +    "scoreKind": {
        +      "const": "request_fit",
        +      "type": "string"
        +    },
        +    "status": {
        +      "enum": [
        +        "available",
        +        "degraded"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "status",
        +    "scoreKind",
        +    "probability"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / total / description
        Added value: +"Exact number of listing objects returned in this response; not the number of matches in the market."
      • addedOutput schema / properties / total / maximum
        Added value: +9007199254740991
      • addedOutput schema / properties / total / minimum
        Added value: +0
      • changedOutput schema / properties / total / type
        Previous value: -"number"New value: +"integer"
    • Changedsearch_vibe34 fields changed
      • addedOutput schema / properties / countKind
        Added value: +{
        +  "const": "returned",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / agencyName
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / areaSqm
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / baths
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / beds
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / charges
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / city
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / country
        Added value: +{
        +  "anyOf": [
        +    {
        +      "enum": [
        +        "LU",
        +        "FR",
        +        "BE",
        +        "DE"
        +      ],
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / currency
        Added value: +{
        +  "const": "EUR",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / description
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / district
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / energyClass
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / features
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "type": "array"
        +}
      • addedOutput schema / properties / listings / items / properties / hasSourceCheckedFacts
        Added value: +{
        +  "type": "boolean"
        +}
      • addedOutput schema / properties / listings / items / properties / id
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / imageUrl
        Added value: +{
        +  "anyOf": [
        +    {
        +      "format": "uri",
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / latitude
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / listingType
        Added value: +{
        +  "enum": [
        +    "rent",
        +    "sale"
        +  ],
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / longitude
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / matchReasons
        Added value: +{
        +  "items": {
        +    "type": "string"
        +  },
        +  "maxItems": 3,
        +  "type": "array"
        +}
      • addedOutput schema / properties / listings / items / properties / photoUrls
        Added value: +{
        +  "items": {
        +    "format": "uri",
        +    "type": "string"
        +  },
        +  "maxItems": 5,
        +  "type": "array"
        +}
      • addedOutput schema / properties / listings / items / properties / price
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / pricePerSqm
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "number"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / propertyType
        Added value: +{
        +  "anyOf": [
        +    {
        +      "type": "string"
        +    },
        +    {
        +      "type": "null"
        +    }
        +  ]
        +}
      • addedOutput schema / properties / listings / items / properties / score
        Added value: +{
        +  "maximum": 100,
        +  "minimum": 0,
        +  "type": "number"
        +}
      • addedOutput schema / properties / listings / items / properties / status
        Added value: +{
        +  "const": "active",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / title
        Added value: +{
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / properties / url
        Added value: +{
        +  "format": "uri",
        +  "type": "string"
        +}
      • addedOutput schema / properties / listings / items / required
        Added value: +[
        +  "id",
        +  "url",
        +  "title",
        +  "status",
        +  "price",
        +  "currency",
        +  "listingType",
        +  "propertyType",
        +  "city",
        +  "district",
        +  "country",
        +  "beds",
        +  "baths",
        +  "areaSqm",
        +  "energyClass",
        +  "imageUrl",
        +  "agencyName",
        +  "latitude",
        +  "longitude"
        +]
      • addedOutput schema / properties / ranking
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "planFingerprint": {
        +      "type": "string"
        +    },
        +    "probability": {
        +      "const": false,
        +      "type": "boolean"
        +    },
        +    "scoreKind": {
        +      "const": "request_fit",
        +      "type": "string"
        +    },
        +    "status": {
        +      "enum": [
        +        "available",
        +        "degraded"
        +      ],
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "status",
        +    "scoreKind",
        +    "probability"
        +  ],
        +  "type": "object"
        +}
      • addedOutput schema / properties / total / description
        Added value: +"Exact number of listing objects returned in this response; not the number of matches in the market."
      • addedOutput schema / properties / total / maximum
        Added value: +9007199254740991
      • addedOutput schema / properties / total / minimum
        Added value: +0
      • changedOutput schema / properties / total / type
        Previous value: -"number"New value: +"integer"
  8. 4 tool updates
    • Changedrender_listing_cards1 field changed
      • addedOutput schema / properties / coverageNotice
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "reason": {
        +      "const": "outside_luxembourg",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "reason"
        +  ],
        +  "type": "object"
        +}
    • Changedsearch_for_sale1 field changed
      • addedOutput schema / properties / coverageNotice
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "reason": {
        +      "const": "outside_luxembourg",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "reason"
        +  ],
        +  "type": "object"
        +}
    • Changedsearch_rentals1 field changed
      • addedOutput schema / properties / coverageNotice
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "reason": {
        +      "const": "outside_luxembourg",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "reason"
        +  ],
        +  "type": "object"
        +}
    • Changedsearch_vibe1 field changed
      • addedOutput schema / properties / coverageNotice
        Added value: +{
        +  "additionalProperties": false,
        +  "properties": {
        +    "reason": {
        +      "const": "outside_luxembourg",
        +      "type": "string"
        +    }
        +  },
        +  "required": [
        +    "reason"
        +  ],
        +  "type": "object"
        +}
  9. 14 tool updates
    • First observedanalyze_lease
    • First observedget_affordability
    • First observedget_commute_times
    • First observedget_inquiry_status
    • First observedget_listing
    • First observedget_listing_truth
    • First observedget_market_context
    • First observedget_price_estimate
    • First observedget_town_agencies
    • First observedrender_listing_cards
    • First observedsearch_for_sale
    • First observedsearch_rentals
    • First observedsearch_vibe
    • First observedsubmit_inquiry

Related MCP Connectors

Related MCP Servers

  • F
    license
    Not graded
    quality
    F
    maintenance
    French real estate data platform for AI agents. Identifies property owners likely to sell and tracks behavioral signals on active listings. Coverage: metropolitan France.
    -
  • A
    license
    Not graded
    quality
    C
    maintenance
    Enables AI assistants and agents to query real neighbourhood data around a property, including nearest schools, nurseries, supermarkets, public transport, train stations, motorway access, distances with travel times, and quotable summaries across 25 countries.
    MIT
  • A
    license
    A
    quality
    D
    maintenance
    Philippine real estate data for AI agents — search verified listings, calculate transfer costs, and get accurate legal information via lupaph.com.
    6
    43 npm
    MIT
  • A
    license
    Not graded
    quality
    C
    maintenance
    Access 17M+ geocoded French property transactions (DVF), 22M+ DPE energy ratings, and 20M+ building records via MCP or REST API. Search transactions, market stats, comparables, price trends, rental yield, flip detection, and more.
    MIT
Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources