changedOutput schema / (root)
Previous value: -nullNew value: +{
+ "description": "A matched-contractor quote, a no-availability response, or a business/auth error passthrough from the downstream dispatch API.",
+ "oneOf": [
+ {
+ "description": "A contractor was matched.",
+ "properties": {
+ "available": {
+ "const": true,
+ "type": "boolean"
+ },
+ "next_steps": {
+ "properties": {
+ "contact": {
+ "type": "string"
+ },
+ "dispatch": {
+ "type": "string"
+ },
+ "docs": {
+ "type": "string"
+ }
+ },
+ "type": "object"
+ },
+ "quote": {
+ "properties": {
+ "alternates_count": {
+ "type": "integer"
+ },
+ "best_match": {
+ "properties": {
+ "estimated_cost_cents": {
+ "type": "integer"
+ },
+ "estimated_cost_usd": {
+ "type": "string"
+ },
+ "estimated_response_minutes": {
+ "type": "number"
+ },
+ "match_score": {
+ "type": "number"
+ }
+ },
+ "type": "object"
+ },
+ "estimated_eta": {
+ "type": "string"
+ },
+ "generated_at": {
+ "type": "string"
+ },
+ "location": {
+ "type": "object"
+ },
+ "trade": {
+ "type": "string"
+ },
+ "urgency": {
+ "enum": [
+ "emergency",
+ "urgent",
+ "routine",
+ "scheduled"
+ ],
+ "type": "string"
+ },
+ "valid_for_minutes": {
+ "type": "integer"
+ }
+ },
+ "required": [
+ "trade",
+ "location",
+ "urgency",
+ "estimated_eta",
+ "best_match",
+ "alternates_count",
+ "generated_at",
+ "valid_for_minutes"
+ ],
+ "type": "object"
+ }
+ },
+ "required": [
+ "available",
+ "quote",
+ "next_steps"
+ ],
+ "type": "object"
+ },
+ {
+ "description": "No contractor is currently available for this trade/location.",
+ "properties": {
+ "available": {
+ "const": false,
+ "type": "boolean"
+ },
+ "location": {
+ "type": "object"
+ },
+ "message": {
+ "type": "string"
+ },
+ "trade": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "available",
+ "message",
+ "trade",
+ "location"
+ ],
+ "type": "object"
+ },
+ {
+ "additionalProperties": true,
+ "description": "Business/rate-limit/auth error passthrough.",
+ "properties": {
+ "error": {
+ "type": "string"
+ }
+ },
+ "required": [
+ "error"
+ ],
+ "type": "object"
+ }
+ ],
+ "type": "object"
+}