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 with GitHub, an HTTP challenge, or a DNS record. Claimed connector authors can inspect health checks, view analytics, and manage their listing.
Status
Healthy
Last Tested
Transport
Streamable HTTP
URL

TDQS

A4.2/5.0

Scored across 15 tools

Disambiguation4/5

Most tools target clearly distinct workflows: searching, listing details, market context, affordability, lease analysis, and inquiries. The only mild ambiguity is between get_listing and get_listing_truth, which both describe views of the same listing page but are differentiated by their trust-layer emphasis.

Naming Consistency5/5

All tool names follow a consistent snake_case verb_noun pattern, such as search_for_sale, get_market_context, compare_listings, and submit_inquiry. The naming clearly signals both action and resource, with no mixed casing or vague generic verbs.

Tool Count5/5

Fifteen tools is at the upper end of the ideal range but each tool supports a distinct real-estate workflow, from search and comparison to affordability, commute, lease analysis, and inquiries. The count feels well-scoped for a full-featured property platform rather than bloated.

Completeness5/5

The tool surface covers the major consumer real-estate lifecycle: searching sale and rental inventory, natural-language search, listing detail and trust views, comparison, market context, price estimation, affordability, commute analysis, lease review, and inquiries. There are no obvious dead ends or critical missing operations for the apparent purpose.

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

A4.4/5.0
Behavior5/5

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

Annotations already declare readOnlyHint, idempotentHint, and destructiveHint, so the safety profile is covered. The description adds substantial behavioral context: it normalizes multiple listings into one response and explicitly handles known/estimated costs, availability, property facts, official checks, commute summaries, provenance, freshness, duplicates, constraints, and unknown fields.

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 core behavior is front-loaded and the description is a single sentence with no filler. The trailing list of output fields is long but each item contributes useful behavioral signal.

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?

The description covers input bounds, output shape, response normalization, and edge-case handling like explicit unknown fields. An output schema exists, so return values do not need to be explained further; the description is complete enough for correct tool selection and invocation.

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 baseline is 3. The description aligns with the ids parameter by mentioning two to eight listings, but it adds no meaningful detail about locale or parameter formatting beyond what the schema already provides.

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 a specific verb ('Compare'), a precise resource ('listings'), and a bounded scope ('two to eight'). It also identifies the normalized AgentListing v2 response, which clearly differentiates it from single-listing tools like 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 tool is clearly positioned for comparing two to eight listings, giving an agent a clear trigger condition. However, it does not explicitly name alternatives or state when not to use it, such as pointing to get_listing for a single listing.

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 DetailsA
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, 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
listingPageYes
listingPageContextYes

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already cover read-only, idempotent, and non-destructive behavior. The description adds meaningful behavioral context with 'fail-closed', indicating the tool returns complete data or fails rather than partial results, and 'unknown fields', signaling unmapped/raw fields are surfaced. No contradiction with annotations.

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 front-loaded with the core behavior and then lists content areas, each of which earns its place. The long enumeration is dense but not padded with filler or repetition.

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?

An output schema exists, so return values do not need to be described. The schema covers all parameters, and the description provides the high-level output scope and failure behavior. It is complete enough for an agent to invoke 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 coverage is 100%, and the schema already fully describes id, locale (including defaults and deprecated alias), and includePhotos. The description does not need to add parameter semantics beyond the schema.

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 'Get' with the clear object 'full fail-closed listing page' and enumerates the many data sections included. This establishes a distinct scope that separates it from narrower siblings like get_listing_truth or render_listing_cards.

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 word 'full' implies when the tool should be used, but there is no explicit guidance on when to prefer this tool over alternative siblings, nor any exclusion or conditional routing. The intended use is inferable, not stated.

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

get_listing_truthGet Listing TruthA
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

TDQS

A3.9/5.0
Behavior4/5

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

Annotations already mark the tool as read-only, idempotent, and non-destructive. The description adds valuable behavioral context beyond that: the listing page is 'fail-closed,' explicit unknowns are surfaced, correction totals are privacy-safe, and no reporter identities are exposed. This materially improves the agent's understanding of what to expect.

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 one dense, front-loaded sentence followed by one short privacy guarantee. Every listed component adds semantic value about what the trust-layer view includes. It is somewhat jargon-heavy ('fail-closed', 'trust-layer'), but nothing is wasted.

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 presence of an output schema and safety annotations, the description is reasonably complete: it communicates the tool's trust focus, fail-closed behavior, included data categories, unknown handling, and privacy constraints. It does not explicitly mention parameters or locale, but the schema fully covers those, so nothing critical is 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 the input schema fully documents both 'id' and 'locale,' including the locale enum and the deprecated 'lb' alias. The description does not need to explain parameters; it provides output-scope context instead, which is acceptable at the baseline level.

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 a specific verb-resource pair: a 'trust-layer view' of the 'fail-closed listing page.' It enumerates distinctive contents (normalized costs, official checks, sources, freshness, explicit unknowns, privacy-safe correction totals) that clearly separate it from the basic sibling 'get_listing.' The second sentence reinforces its unique privacy-safe scope.

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 phrase 'trust-layer view' implies this tool is for getting verified/trust-oriented listing context rather than a plain listing view, so the intended use is somewhat inferable. However, it never explicitly states when to choose this over siblings like get_listing, compare_listings, or get_market_context, nor does it mention any exclusion conditions.

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

get_market_contextGet Market ContextA
Read-onlyIdempotent
Inspect

Get real estate market data and liveability scores for a commune — prices, trends, schools, transport.

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

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 well covered. The description adds useful context about the types of data returned but does not disclose additional behavioral traits such as rate limits, authentication, or output limitations.

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, information-dense sentence with no filler. The core action and scope are front-loaded, and the listed data categories add value without redundancy.

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 a simple read-only tool with full schema coverage, a detailed output schema, and safety annotations, the description is complete enough. An agent can correctly understand what the tool returns and how it behaves without additional clarification.

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 both 'commune' and 'locale' are already well documented. The description reinforces that the tool operates on a commune, but it adds no additional parameter-level meaning beyond the schema.

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') with a clear resource ('real estate market data and liveability scores for a commune') and lists concrete data categories ('prices, trends, schools, transport'). This distinguishes it from narrower siblings like get_price_estimate or get_commute_times, which focus on single dimensions.

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 implies the tool is for commune-level market overview rather than property-specific or narrow tasks. However, it does not explicitly state when not to use it or name alternative tools, leaving some selection inference to the agent.

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
listingsYes
countKindNo
truncatedNo
nextCursorNo
matchingCountNo
returnedCountNo
coverageNoticeNo
searchExhaustiveNo
matchingCountKindNo
excludedUnprovenCountNoUpstream rows omitted because public facts could not prove every requested hard filter.
marketMatchingUpperBoundNo

TDQS

A4.3/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 meaningful behavioral context beyond these annotations by stating the tool 're-reads canonical public listing facts before display,' which informs the agent that the output is grounded in canonical data rather than blindly echoing inputs. It also emphasizes copying score/reason values 'without alteration,' a useful behavioral constraint.

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, with the core purpose and constraints front-loaded in the first sentence and usage guidance in the second. Every clause contributes essential information: count limit, source dependency, exact-copy instruction, and canonical re-read behavior. No filler or repetition.

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?

Given that the input schema is exhaustive, there is an output schema present, and annotations cover safety and idempotency, the description adds the missing workflow context: it must follow a search, the data must be copied exactly, and canonical facts are re-read. This is sufficient for an agent to invoke the tool correctly in sequence.

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 documents each parameter precisely, including exactness of IDs, scores/reasons returned by search_vibe, and display order. The description reinforces these semantics ('copy... without alteration') but does not add meaningful new information 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 ('Render'), a precise resource ('exact results from a prior property search'), and a concrete presentation format ('interactive MCP Apps photo carousel'). It clearly differentiates this display tool from the search siblings by requiring a prior search, so an agent cannot mistake it for a search operation.

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 explicit sequencing guidance: 'Call a search tool first, then copy its listing IDs and any returned match scores/reasons without alteration.' This states when to use the tool and its precondition, but it stops short of naming specific sibling tools or explicitly saying 'do not use for searching' as an exclusion, so it lacks the full when-not/alternatives detail.

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
listingsYes
countKindNo
truncatedNo
nextCursorNo
matchingCountNo
returnedCountNo
coverageNoticeNo
searchExhaustiveNo
matchingCountKindNo
excludedUnprovenCountNoUpstream rows omitted because public facts could not prove every requested hard filter.
marketMatchingUpperBoundNo

TDQS

A4.4/5.0
Behavior4/5

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

Annotations already cover readOnlyHint=true, openWorldHint=false, idempotentHint=true, destructiveHint=false. The description adds valuable behavioral context: every sourced result identifies and links the original agency listing and states latest catalogue re-sighting time, and thumbnails are attached as image content blocks. It also implies open-world semantics are false by saying 'supported Grande Région inventory'. Minor gap: does not describe pagination or what happens with zero results.

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?

Two sentences, front-loaded with the core function and supported scope, followed by the most important behavior about sourcing and metadata. Every clause earns its place; no filler, repetition, or schema duplication.

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 18 parameters, 100% schema coverage, and an output schema, the description doesn't need to explain parameter formats or return values. It covers scope, result provenance, and image-block behavior. A small gap is enumerating no explicit when-to-use-vs-alternative guidance, and it doesn't mention sort/completeness semantics in a way that tells an agent how to set those fields; but the description plus rich schema and annotations is largely complete for an AI agent to select and invoke it.

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 adds semantic value by grouping the parameters into search dimensions ('location, price, rooms, area, property type, and positive-evidence amenities') and mentioning explicit sort and completeness metadata, plus the 'complete' behavior of includePhotos and attachment of image blocks. It doesn't explain every parameter, but schema already covers those; the description adds contextual meaning above the schema.

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 phrase ('Search properties for sale') and identifies the resource ('supported Grande Région inventory'), with explicit dimensions (location, price, rooms, area, property type, amenities) and metadata about sourcing. It clearly distinguishes from siblings like search_rentals, get_listing, and get_market_context. No ambiguity about what the tool does.

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 states what the search covers (sale, Grande Région inventory) and gives context for what to use it for (search across supported inventory), but it does not explicitly name sibling exclusions such as 'use search_rentals for rentals' or 'use get_listing for individual listings'. It clearly implies when to use it versus other tools, but leaves explicit alternates to inference.

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 rental properties 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 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 monthly rent in EUR
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.

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
listingsYes
countKindNo
truncatedNo
nextCursorNo
matchingCountNo
returnedCountNo
coverageNoticeNo
searchExhaustiveNo
matchingCountKindNo
excludedUnprovenCountNoUpstream rows omitted because public facts could not prove every requested hard filter.
marketMatchingUpperBoundNo

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already indicate this is read-only, idempotent, and non-destructive. The description adds valuable behavioral context beyond those annotations: result provenance links, original agency listing identification, catalogue re-sighting timestamps, completeness metadata, and attached thumbnail image blocks.

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?

Two focused sentences: the first states the search scope and filter dimensions, the second explains result provenance, metadata, and image output. Every clause carries meaningful information with no redundancy.

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?

Given the rich input schema, full schema coverage, existing output schema, and safety annotations, the description adds sufficient context about result behavior, provenance, and image handling. Nothing critical is missing for an agent 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%, so the schema already documents every parameter. The description adds some context by grouping filters into categories (location, price, rooms, area, property type, positive-evidence amenities), but it does not add individual parameter-level meaning beyond the schema.

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 ('Search') and resource ('rental properties across supported Grande Région inventory'), and lists concrete filter dimensions. It clearly distinguishes itself from the sibling search_for_sale tool by focusing on rentals.

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 conveys that this tool is for searching rental listings in the Grande Région, and the filter list implies its breadth. However, it does not explicitly call out alternatives such as get_listing for a single result or search_for_sale for purchases.

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. If the requested place is outside current coverage, it returns no listings plus a machine-readable coverageNotice instead of substituting unrelated homes.

ParametersJSON Schema
NameRequiredDescriptionDefault
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')
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
listingsYes
countKindNo
truncatedNo
nextCursorNo
matchingCountNo
returnedCountNo
coverageNoticeNo
searchExhaustiveNo
matchingCountKindNo
excludedUnprovenCountNoUpstream rows omitted because public facts could not prove every requested hard filter.
marketMatchingUpperBoundNo

TDQS

A4.5/5.0
Behavior5/5

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

Annotations already mark the operation as read-only and idempotent, but the description adds substantial non-obvious behavior: healthy runs return source-grounded match reasons and a 0-100 request-fit score, degraded runs omit ranking claims, every sourced result links to the original agency listing with re-sighting time, and out-of-coverage queries return a coverageNotice rather than unrelated homes. These details materially affect how an agent should interpret results and go well beyond what annotations or schema reveal.

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 compact but information-dense, front-loading the core purpose in the first sentence and then adding behavioral caveats in a logical order. Every sentence contributes: matching method, output guarantees, degradation behavior, and out-of-coverage handling. No filler or redundancy.

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?

Given the rich input schema and output schema, the description covers all essential invocation context: what inputs to pass, how the engine works, what the output represents, how degraded runs differ, and what happens when coverage is missing. An agent has enough context to select, invoke, and interpret results correctly without relying on undocumented assumptions.

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 input schema already documents all five parameters thoroughly, with 100% description coverage including detailed natural-language examples for query. The tool description reinforces that the query should be passed as prose but does not add new meaning about the parameters beyond what the schema provides. Baseline 3 is appropriate when the schema carries 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 identifies a specific verb ('search') and resource ('property search'), then goes further by distinguishing this as the natural-language 'vibe' search that matches on lifestyle, mood, proximity, and soft preferences via embeddings and LLM reasoning. This clearly differentiates it from sibling structured searches like search_rentals and search_for_sale without needing to inspect their schemas.

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 explicitly says to pass the user's request as prose, which tells an agent when this tool is appropriate: when the user expresses preferences in natural language rather than structured filters. It strongly implies this is the preferred tool for 'vibe' queries, but it does not explicitly name alternatives or state when to choose a structured search instead, so it stops just short of full routing guidance.

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. 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"
        +}
  2. 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"
  3. 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"
        +}
  4. 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
    A
    quality
    C
    maintenance
    Philippine real estate data for AI agents — search verified listings, calculate transfer costs, and get accurate legal information via lupaph.com.
    6
    55
    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