changedOutput schema / anyOf
Previous value: -[
- {
- "additionalProperties": false,
- "properties": {
- "candidates": {
- "items": {
- "additionalProperties": false,
- "properties": {
- "checked": {
- "description": "TRUE only when this candidate's availability was actually computed. FALSE means skipped (over budget, read failure, or per-tenant availability budget exhausted) — its earliest_slot is unknown, not absent.",
- "type": "boolean"
- },
- "demo": {
- "type": "boolean"
- },
- "demo_notice": {
- "description": "Present on every demo candidate — relay it; never describe a demo business as a real provider.",
- "type": "string"
- },
- "earliest_slot": {
- "additionalProperties": false,
- "properties": {
- "end_iso": {
- "format": "date-time",
- "type": "string"
- },
- "start_iso": {
- "format": "date-time",
- "type": "string"
- }
- },
- "required": [
- "start_iso",
- "end_iso"
- ],
- "type": [
- "object",
- "null"
- ]
- },
- "location": {
- "additionalProperties": false,
- "properties": {
- "city": {
- "type": [
- "string",
- "null"
- ]
- },
- "match": {
- "description": "The coarse place relationship used for this result.",
- "enum": [
- "postal",
- "city",
- "market",
- "region"
- ],
- "type": "string"
- },
- "postal_code": {
- "type": [
- "string",
- "null"
- ]
- },
- "region": {
- "type": [
- "string",
- "null"
- ]
- }
- },
- "type": "object"
- },
- "match": {
- "additionalProperties": false,
- "properties": {
- "evidence": {
- "items": {
- "type": "string"
- },
- "type": "array"
- },
- "match_type": {
- "enum": [
- "exact",
- "ontology",
- "description"
- ],
- "type": "string"
- },
- "score": {
- "type": "integer"
- }
- },
- "required": [
- "score",
- "match_type"
- ],
- "type": "object"
- },
- "service": {
- "additionalProperties": false,
- "properties": {
- "duration_minutes": {
- "type": "integer"
- },
- "id": {
- "type": "string"
- },
- "name": {
- "type": "string"
- },
- "price_cents": {
- "type": [
- "integer",
- "null"
- ]
- },
- "price_label": {
- "type": "string"
- }
- },
- "required": [
- "id",
- "name"
- ],
- "type": "object"
- },
- "tenant_name": {
- "type": "string"
- },
- "tenant_slug": {
- "description": "Pass as tenantSlug (gateway) / tenant (MCP) to the tenant-scoped actions.",
- "type": "string"
- }
- },
- "required": [
- "tenant_slug",
- "tenant_name",
- "demo",
- "checked",
- "service",
- "match",
- "earliest_slot"
- ],
- "type": "object"
- },
- "type": "array"
- },
- "demo_notice": {
- "type": "string"
- },
- "earliest_after": {
- "description": "The exact window start used.",
- "format": "date-time",
- "type": "string"
- },
- "earliest_before": {
- "description": "The exact window end used.",
- "format": "date-time",
- "type": "string"
- },
- "outcome": {
- "enum": [
- "ok"
- ],
- "type": "string"
- },
- "partial": {
- "description": "TRUE whenever any candidate went unchecked OR more matched businesses existed than candidate_limit covered. When true, present the result as \"the earliest among the top N candidates checked\" — never \"the earliest anywhere\".",
- "type": "boolean"
- }
- },
- "required": [
- "outcome",
- "earliest_after",
- "earliest_before",
- "partial",
- "candidates"
- ],
- "type": "object"
- },
- {
- "additionalProperties": false,
- "properties": {
- "detail": {
- "description": "A short user-safe explanation.",
- "type": "string"
- },
- "outcome": {
- "description": "A stable failure category.",
- "enum": [
- "validation_error",
- "rate_limited",
- "internal_error"
- ],
- "type": "string"
- },
- "reason": {
- "description": "A stable machine-readable reason.",
- "type": "string"
- },
- "retry_after_sec": {
- "minimum": 1,
- "type": "integer"
- }
- },
- "required": [
- "outcome",
- "reason",
- "detail"
- ],
- "type": "object"
- }
-]New value: +[
+ {
+ "additionalProperties": false,
+ "properties": {
+ "candidates": {
+ "items": {
+ "additionalProperties": false,
+ "properties": {
+ "checked": {
+ "type": "boolean"
+ },
+ "demo": {
+ "type": "boolean"
+ },
+ "demo_notice": {
+ "type": "string"
+ },
+ "earliest_slot": {
+ "additionalProperties": false,
+ "properties": {
+ "end_iso": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "start_iso": {
+ "format": "date-time",
+ "type": "string"
+ }
+ },
+ "type": [
+ "object",
+ "null"
+ ]
+ },
+ "location": {
+ "additionalProperties": false,
+ "properties": {
+ "city": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "distance_miles": {
+ "type": "number"
+ },
+ "match": {
+ "enum": [
+ "postal",
+ "city",
+ "market",
+ "region",
+ "coordinates"
+ ],
+ "type": "string"
+ },
+ "postal_code": {
+ "type": [
+ "string",
+ "null"
+ ]
+ },
+ "region": {
+ "type": [
+ "string",
+ "null"
+ ]
+ }
+ },
+ "type": "object"
+ },
+ "match": {
+ "additionalProperties": false,
+ "properties": {
+ "evidence": {
+ "items": {
+ "type": "string"
+ },
+ "type": "array"
+ },
+ "match_type": {
+ "enum": [
+ "exact",
+ "ontology",
+ "description"
+ ],
+ "type": "string"
+ },
+ "score": {
+ "type": "integer"
+ }
+ },
+ "type": "object"
+ },
+ "service": {
+ "additionalProperties": false,
+ "properties": {
+ "duration_minutes": {
+ "type": "integer"
+ },
+ "id": {
+ "type": "string"
+ },
+ "name": {
+ "type": "string"
+ },
+ "price_cents": {
+ "type": [
+ "integer",
+ "null"
+ ]
+ },
+ "price_label": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "tenant_name": {
+ "type": "string"
+ },
+ "tenant_slug": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "type": "array"
+ },
+ "demo_businesses_excluded": {
+ "minimum": 1,
+ "type": "integer"
+ },
+ "demo_businesses_excluded_is_exhaustive": {
+ "type": "boolean"
+ },
+ "demo_exclusion_note": {
+ "type": "string"
+ },
+ "demo_notice": {
+ "type": "string"
+ },
+ "distance_note": {
+ "type": "string"
+ },
+ "earliest_after": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "earliest_before": {
+ "format": "date-time",
+ "type": "string"
+ },
+ "outcome": {
+ "const": "ok"
+ },
+ "partial": {
+ "type": "boolean"
+ }
+ },
+ "required": [
+ "outcome",
+ "earliest_after",
+ "earliest_before",
+ "partial",
+ "candidates"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": false,
+ "properties": {
+ "detail": {
+ "type": "string"
+ },
+ "outcome": {
+ "enum": [
+ "validation_error",
+ "rate_limited",
+ "internal_error"
+ ],
+ "type": "string"
+ },
+ "reason": {
+ "type": "string"
+ },
+ "retry_after_sec": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "outcome",
+ "reason",
+ "detail"
+ ],
+ "type": "object"
+ }
+]