{
  "openapi": "3.1.0",
  "info": {
    "title": "Homejourney Platform API",
    "version": "0.1.0",
    "description": "REST/OpenAPI contract for the Homejourney partner ecosystem platform.\n\nSDK, CLI, and MCP adapters call this API contract instead of importing server internals.\n\nAPI-first is contract-first, not a framework migration. The current implementation remains Next.js route handlers plus TypeScript service modules; FastAPI or Python services may support bounded Python-native workloads only behind explicit service or OpenAPI boundaries.\n\nSandbox keys use `hjp_test_` and live keys use `hjp_live_`.\n\nExternal partner URLs use `/v1/**` behind the live and sandbox API hosts. The current Next.js implementation path is `/api/platform/v1/**` until API Gateway/ECS becomes the ingress.\n\nMutating routes will require an `Idempotency-Key` header. Read-only routes do not require idempotency keys.\n\nCommitted routes must remain portable across Vercel and future API Gateway/ECS ingress: no Vercel-only headers, deployment-region assumptions, or background execution for committed writes.",
    "contact": {
      "name": "Homejourney Engineering",
      "url": "https://homejourney.sg",
      "email": "support@homejourney.sg"
    },
    "license": {
      "name": "Proprietary"
    },
    "x-homejourney-contract": {
      "source": "REST/OpenAPI",
      "changelog": "https://docs.homejourney.sg/platform/changelog",
      "externalBasePath": "/v1",
      "implementationBasePath": "/api/platform/v1",
      "lifecycle": "additive-with-deprecation-window"
    }
  },
  "servers": [
    {
      "url": "https://platform-api.homejourney.sg/v1",
      "description": "Live platform API"
    },
    {
      "url": "https://sandbox-platform-api.homejourney.sg/v1",
      "description": "Sandbox platform API"
    },
    {
      "url": "http://localhost:3000/api/platform/v1",
      "description": "Local development"
    }
  ],
  "tags": [
    {
      "name": "Organizations",
      "description": "Organization and credential context."
    },
    {
      "name": "Products",
      "description": "Platform API product catalog and readiness gates."
    },
    {
      "name": "Provider AI",
      "description": "Sandbox service-provider AI workspace graph reads."
    },
    {
      "name": "Agent hosts",
      "description": "Agent host grant, prepared-action status, and revocation control routes."
    },
    {
      "name": "Provider integrations",
      "description": "Read-only provider connected-app directory metadata and install gates."
    },
    {
      "name": "Billing owner visibility",
      "description": "Read-only billing owner review gates and observe-only billing posture."
    },
    {
      "name": "Import/export readiness",
      "description": "Read-only import/export preview, rollback, export, and offboarding posture."
    },
    {
      "name": "Agents",
      "description": "Sandbox agent workspace read APIs."
    },
    {
      "name": "Agencies",
      "description": "Sandbox agency organization read APIs."
    },
    {
      "name": "Listings",
      "description": "Public-safe listing read APIs."
    },
    {
      "name": "Sites",
      "description": "Sandbox partner-site read APIs."
    },
    {
      "name": "Conveyancing",
      "description": "Sandbox transaction and conveyancing read APIs."
    },
    {
      "name": "Insurance and move-in",
      "description": "Sandbox insurance and move-in coordination read and prepare APIs."
    },
    {
      "name": "Development professional services",
      "description": "Sandbox project coordination and submission-evidence read APIs."
    },
    {
      "name": "Valuation and appraisal",
      "description": "Sandbox case evidence and professional-review read APIs."
    },
    {
      "name": "Valuations",
      "description": "Automated sale and rent estimates from recorded transactions."
    },
    {
      "name": "Listing feed",
      "description": "Licensed agencies submit, update and withdraw listings for human review."
    },
    {
      "name": "Renovations",
      "description": "Sandbox Renovation project workspace APIs."
    },
    {
      "name": "Official sources",
      "description": "Sandbox source-attributed official-source reads."
    },
    {
      "name": "Sandbox",
      "description": "Sandbox fixture catalog and reset evidence."
    },
    {
      "name": "Onboarding",
      "description": "Headless partner onboarding readiness contract."
    },
    {
      "name": "Viewings",
      "description": "Sandbox viewing workflow APIs."
    },
    {
      "name": "Webhooks",
      "description": "Webhook endpoint registration and delivery evidence."
    }
  ],
  "paths": {
    "/agencies/current/analytics": {
      "get": {
        "tags": [
          "Agencies"
        ],
        "summary": "Inspect current sandbox agency aggregate analytics",
        "description": "Returns aggregate-only sandbox analytics for the current sandbox agency when the authenticated automation client has `agency.analytics.read`. External URL: `/v1/agencies/current/analytics`. Current Next.js implementation path: `/api/platform/v1/agencies/current/analytics`. This read-only route does not require `Idempotency-Key`; SDK, CLI, and MCP analytics inspection may call this sandbox route, while live agency analytics, customer PII, contact fields, private notes, lead/client rows, raw event logs, and delegated impersonation remain deferred.",
        "operationId": "getCurrentAgencyAnalytics",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Current sandbox agency aggregate analytics.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentAgencyAnalyticsResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/CurrentAgencyAnalyticsSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/agencies/current/analytics",
          "implementationPath": "/api/platform/v1/agencies/current/analytics",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/agencies/current/audit-events": {
      "get": {
        "tags": [
          "Agencies"
        ],
        "summary": "List current sandbox agency audit events",
        "description": "Returns synthetic, redacted sandbox audit event summaries for the current sandbox agency when the authenticated automation client has `agency.audit.read`. External URL: `/v1/agencies/current/audit-events`. Current Next.js implementation path: `/api/platform/v1/agencies/current/audit-events`. This read-only route does not require `Idempotency-Key`; SDK, CLI, and MCP audit-event inspection may call this sandbox route, while live audit events, raw request payloads, raw response payloads, request headers, response bodies, IP addresses, user agents, API key digests, customer PII, private notes, and delegated impersonation controls remain deferred.",
        "operationId": "listCurrentAgencyAuditEvents",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Current sandbox agency redacted audit event summaries.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentAgencyAuditEventsResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/CurrentAgencyAuditEventsSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/agencies/current/audit-events",
          "implementationPath": "/api/platform/v1/agencies/current/audit-events",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/agencies/current/integrations": {
      "get": {
        "tags": [
          "Agencies"
        ],
        "summary": "List current sandbox agency integrations",
        "description": "Returns sandbox-only integration metadata for the current sandbox agency when the authenticated automation client has `agency.integrations.manage`. External URL: `/v1/agencies/current/integrations`. Current Next.js implementation path: `/api/platform/v1/agencies/current/integrations`. This read-only route does not require `Idempotency-Key`; SDK, CLI, and MCP integration inspection may call this sandbox route, while live integration management, CRM secrets, OAuth tokens, webhook secrets, raw sync payloads, delegated impersonation, and contact exports remain deferred.",
        "operationId": "listCurrentAgencyIntegrations",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Current sandbox agency integration metadata.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentAgencyIntegrationsResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/CurrentAgencyIntegrationsSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/agencies/current/integrations",
          "implementationPath": "/api/platform/v1/agencies/current/integrations",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/agencies/current/lead-routing": {
      "get": {
        "tags": [
          "Agencies"
        ],
        "summary": "Inspect current sandbox agency lead-routing queues",
        "description": "Returns sandbox-only lead-routing queue and rule metadata for the current sandbox agency when the authenticated automation client has `agency.leads.route`. External URL: `/v1/agencies/current/lead-routing`. Current Next.js implementation path: `/api/platform/v1/agencies/current/lead-routing`. This read-only route does not require `Idempotency-Key`; SDK, CLI, and MCP lead-routing inspection may call this sandbox route, while live routing mutations, lead reassignment, contact exports, customer PII, contact fields, raw messages, private notes, owner contact, and delegated impersonation controls remain deferred.",
        "operationId": "getCurrentAgencyLeadRouting",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Current sandbox agency lead-routing queues and rules.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentAgencyLeadRoutingResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/CurrentAgencyLeadRoutingSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/agencies/current/lead-routing",
          "implementationPath": "/api/platform/v1/agencies/current/lead-routing",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/agencies/current/listings": {
      "get": {
        "tags": [
          "Agencies"
        ],
        "summary": "List the current sandbox agency listing portfolio",
        "description": "Returns public-safe sandbox agency listing portfolio rows when the authenticated automation client has `agency.listings.read`. External URL: `/v1/agencies/current/listings`. Current Next.js implementation path: `/api/platform/v1/agencies/current/listings`. This read-only route does not require `Idempotency-Key`; SDK, CLI, and MCP agency-listing inspection may call this sandbox route, while live listing ownership, delegated impersonation, publish/archive/distribution actions, owner contact, source-agent contact metadata, private notes, routing data, raw CRM data, and member write controls remain deferred.",
        "operationId": "listCurrentAgencyListings",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            },
            "description": "Maximum number of current-agency listings to return."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 512
            },
            "description": "Opaque pagination cursor from a previous response."
          }
        ],
        "responses": {
          "200": {
            "description": "Public-safe sandbox agency listing portfolio.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentAgencyListingsResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/CurrentAgencyListingsSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/agencies/current/listings",
          "implementationPath": "/api/platform/v1/agencies/current/listings",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/agencies/current/members": {
      "get": {
        "tags": [
          "Agencies"
        ],
        "summary": "List the current sandbox agency members",
        "description": "Returns public-safe sandbox member summaries for the current sandbox agency when the authenticated automation client has `agency.roster.read`. External URL: `/v1/agencies/current/members`. Current Next.js implementation path: `/api/platform/v1/agencies/current/members`. This read-only route does not require `Idempotency-Key`; SDK, CLI, and MCP member inspection may call this sandbox route, while live agency identity, delegated impersonation, contact fields, private notes, raw lead data, raw client data, identity documents, subscription receipts, billing identifiers, and member write controls remain deferred.",
        "operationId": "listCurrentAgencyMembers",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Public-safe sandbox agency member summaries.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentAgencyMembersResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/CurrentAgencyMembersSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/agencies/current/members",
          "implementationPath": "/api/platform/v1/agencies/current/members",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/agencies/current/roster": {
      "get": {
        "tags": [
          "Agencies"
        ],
        "summary": "List the current sandbox agency roster",
        "description": "Returns public-safe sandbox roster data for the current sandbox agency when the authenticated automation client has `agency.roster.read`. External URL: `/v1/agencies/current/roster`. Current Next.js implementation path: `/api/platform/v1/agencies/current/roster`. This read-only route does not require `Idempotency-Key`; SDK, CLI, and MCP roster inspection may call this sandbox route, while live agency identity, delegated impersonation, contact fields, private notes, raw lead data, raw client data, identity documents, subscription receipts, billing identifiers, CRM secrets, contact exports, and write controls remain deferred.",
        "operationId": "listCurrentAgencyRoster",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Public-safe sandbox agency roster.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentAgencyRosterResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/CurrentAgencyRosterSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/agencies/current/roster",
          "implementationPath": "/api/platform/v1/agencies/current/roster",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/agencies/current/teams": {
      "get": {
        "tags": [
          "Agencies"
        ],
        "summary": "List the current sandbox agency teams",
        "description": "Returns public-safe sandbox team membership summaries for the current sandbox agency when the authenticated automation client has `agency.roster.read`. External URL: `/v1/agencies/current/teams`. Current Next.js implementation path: `/api/platform/v1/agencies/current/teams`. This read-only route does not require `Idempotency-Key`; SDK, CLI, and MCP team inspection may call this sandbox route, while live agency identity, delegated impersonation, contact fields, private notes, raw lead data, raw client data, identity documents, CRM secrets, and team write controls remain deferred.",
        "operationId": "listCurrentAgencyTeams",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Public-safe sandbox agency team summaries.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentAgencyTeamsResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/CurrentAgencyTeamsSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/agencies/current/teams",
          "implementationPath": "/api/platform/v1/agencies/current/teams",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/agents/current/actions": {
      "post": {
        "tags": [
          "Agents"
        ],
        "summary": "Prepare an Agent Team listing-draft update for first-party review",
        "description": "Creates a sandbox-only prepared action when the authenticated automation client has `agent.listings.read`, an active nondelegated `agent_workspace` grant, and an `Idempotency-Key`. External URL: `/v1/agents/current/actions`. Current Next.js implementation path: `/api/platform/v1/agents/current/actions`. The route accepts only `prepare_listing_draft_update`, verifies the sandbox CEA agent and strict owned private-draft eligibility, persists a linked `action_prepared` event, and never changes, publishes, archives, distributes, or sends the canonical listing. Confirmation or rejection is available only through the returned first-party console continuation, never through the API key.",
        "operationId": "prepareCurrentAgentListingDraftUpdate",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentListingActionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Prepared sandbox listing-draft update awaiting first-party confirmation.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentListingActionResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/AgentListingActionSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/agents/current/actions",
          "implementationPath": "/api/platform/v1/agents/current/actions",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/agents/current": {
      "get": {
        "tags": [
          "Agents"
        ],
        "summary": "Inspect the current sandbox agent workspace",
        "description": "Returns a public-safe sandbox fixture summary for the authenticated automation client when it has `agent.profile.read`. External URL: `/v1/agents/current`. Current Next.js implementation path: `/api/platform/v1/agents/current`. This read-only route does not require `Idempotency-Key`; SDK, CLI, and MCP read-only inspection may call this sandbox route while live agent identity, delegated agency actors, writes, listings, leads, clients, viewings, distribution, and analytics remain deferred.",
        "operationId": "getCurrentAgent",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Current sandbox agent workspace summary.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentAgentResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/CurrentAgentSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/agents/current",
          "implementationPath": "/api/platform/v1/agents/current",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/agents/current/profile": {
      "get": {
        "tags": [
          "Agents"
        ],
        "summary": "Inspect the current sandbox agent profile",
        "description": "Returns a public-safe sandbox fixture profile for the authenticated automation client when it has `agent.profile.read`. External URL: `/v1/agents/current/profile`. Current Next.js implementation path: `/api/platform/v1/agents/current/profile`. This read-only route does not require `Idempotency-Key`; SDK, CLI, and MCP profile inspection may call this sandbox route while live CEA identity, contact export, private notes, profile writes, and delegated agency actors remain deferred.",
        "operationId": "getCurrentAgentProfile",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Current sandbox agent profile.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentAgentProfileResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/CurrentAgentProfileSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/agents/current/profile",
          "implementationPath": "/api/platform/v1/agents/current/profile",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/agents/current/listings": {
      "get": {
        "tags": [
          "Agents"
        ],
        "summary": "List current sandbox agent listings",
        "description": "Returns public-safe sandbox listing summaries owned by the current sandbox agent when the authenticated automation client has `agent.listings.read`. External URL: `/v1/agents/current/listings`. Current Next.js implementation path: `/api/platform/v1/agents/current/listings`. This read-only route does not require `Idempotency-Key`; SDK, CLI, and MCP listing inspection may call this sandbox route while live listing ownership, publish/archive/distribution actions, private notes, source-agent contact metadata, and delegated agency actors remain deferred.",
        "operationId": "listCurrentAgentListings",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            },
            "description": "Maximum number of current-agent listings to return."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 512
            },
            "description": "Opaque pagination cursor from a previous response."
          }
        ],
        "responses": {
          "200": {
            "description": "Current sandbox agent listing portfolio.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentAgentListingsResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/CurrentAgentListingsSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/agents/current/listings",
          "implementationPath": "/api/platform/v1/agents/current/listings",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/agents/current/analytics": {
      "get": {
        "tags": [
          "Agents"
        ],
        "summary": "Inspect current sandbox agent analytics",
        "description": "Returns aggregate-only sandbox analytics for the current sandbox agent when the authenticated automation client has `agent.analytics.read`. External URL: `/v1/agents/current/analytics`. Current Next.js implementation path: `/api/platform/v1/agents/current/analytics`. This read-only route does not require `Idempotency-Key`; SDK, CLI, and MCP analytics inspection may call this sandbox route while live analytics, customer PII, raw event logs, lead/client rows, and delegated agency actors remain deferred.",
        "operationId": "getCurrentAgentAnalytics",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Current sandbox agent aggregate analytics.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentAgentAnalyticsResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/CurrentAgentAnalyticsSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/agents/current/analytics",
          "implementationPath": "/api/platform/v1/agents/current/analytics",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/agents/current/distribution": {
      "get": {
        "tags": [
          "Agents"
        ],
        "summary": "Inspect current sandbox agent distribution status",
        "description": "Returns public-safe sandbox distribution status for the current sandbox agent when the authenticated automation client has `agent.distribution.read`. External URL: `/v1/agents/current/distribution`. Current Next.js implementation path: `/api/platform/v1/agents/current/distribution`. This read-only route does not require `Idempotency-Key`; SDK, CLI, and MCP distribution inspection may call this sandbox route while live distribution, distribution activation, channel reconfiguration, lead counts, customer PII, owner contact, raw channel configuration, and delegated agency actors remain deferred.",
        "operationId": "getCurrentAgentDistribution",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Current sandbox agent public-safe distribution status.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentAgentDistributionResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/CurrentAgentDistributionSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/agents/current/distribution",
          "implementationPath": "/api/platform/v1/agents/current/distribution",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/agents/current/viewings": {
      "get": {
        "tags": [
          "Agents"
        ],
        "summary": "List current sandbox agent viewings",
        "description": "Returns public-safe sandbox viewing status for the current sandbox agent when the authenticated automation client has `agent.viewings.read`. External URL: `/v1/agents/current/viewings`. Current Next.js implementation path: `/api/platform/v1/agents/current/viewings`. This read-only route does not require `Idempotency-Key`; SDK, CLI, and MCP viewing inspection may call this sandbox route while live viewing workflows, customer PII, customer contact fields, owner contact, private notes, routing data, live calendar data, calendar write controls, and delegated agency actors remain deferred.",
        "operationId": "listCurrentAgentViewings",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Current sandbox agent public-safe viewing status.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentAgentViewingsResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/CurrentAgentViewingsSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/agents/current/viewings",
          "implementationPath": "/api/platform/v1/agents/current/viewings",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/agents/current/leads": {
      "get": {
        "tags": [
          "Agents"
        ],
        "summary": "List current sandbox agent leads",
        "description": "Returns public-safe sandbox lead status for the current sandbox agent when the authenticated automation client has `agent.leads.read`. External URL: `/v1/agents/current/leads`. Current Next.js implementation path: `/api/platform/v1/agents/current/leads`. This read-only route does not require `Idempotency-Key`; SDK, CLI, and MCP lead inspection may call this sandbox route while live lead workflows, customer PII, customer contact fields, owner contact, raw messages, private notes, routing data, contact exports, write controls, and delegated agency actors remain deferred.",
        "operationId": "listCurrentAgentLeads",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Current sandbox agent public-safe lead status.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentAgentLeadsResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/CurrentAgentLeadsSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/agents/current/leads",
          "implementationPath": "/api/platform/v1/agents/current/leads",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/agents/current/clients": {
      "get": {
        "tags": [
          "Agents"
        ],
        "summary": "List current sandbox agent clients",
        "description": "Returns public-safe sandbox client relationship status for the current sandbox agent when the authenticated automation client has `agent.clients.read`. External URL: `/v1/agents/current/clients`. Current Next.js implementation path: `/api/platform/v1/agents/current/clients`. This read-only route does not require `Idempotency-Key`; SDK, CLI, and MCP client inspection may call this sandbox route while live client workflows, client names, customer PII, customer contact fields, private notes, raw messages, financial documents, identity documents, owner contact, routing data, contact exports, write controls, and delegated agency actors remain deferred.",
        "operationId": "listCurrentAgentClients",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Current sandbox agent public-safe client relationship status.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentAgentClientsResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/CurrentAgentClientsSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/agents/current/clients",
          "implementationPath": "/api/platform/v1/agents/current/clients",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/agent-host/actions/{actionId}": {
      "get": {
        "tags": [
          "Agent hosts"
        ],
        "summary": "Inspect prepared agent host action status",
        "description": "Returns one prepared agent-host action status when the authenticated automation client has `agent_hosts.read`. External URL: `/v1/agent-host/actions/{actionId}`. Current Next.js implementation path: `/api/platform/v1/agent-host/actions/[actionId]`. This read-only route does not require `Idempotency-Key`; it exposes confirmation, grant, and fail-closed safety state only and never executes a prepared action, calls external providers, reveals raw host transcripts, or returns secrets.",
        "operationId": "getAgentHostPreparedActionStatus",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "actionId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 2,
              "maxLength": 192
            },
            "description": "Prepared host action identifier."
          }
        ],
        "responses": {
          "200": {
            "description": "Prepared agent host action status.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentHostPreparedActionStatusResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/AgentHostPreparedActionStatusSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/agent-host/actions/{actionId}",
          "implementationPath": "/api/platform/v1/agent-host/actions/[actionId]",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/agent-host/grants/{grantId}/revoke": {
      "post": {
        "tags": [
          "Agent hosts"
        ],
        "summary": "Revoke an agent host grant",
        "description": "Revokes one active agent-host grant when the authenticated automation client has `agent_hosts.write`. External URL: `/v1/agent-host/grants/{grantId}/revoke`. Current Next.js implementation path: `/api/platform/v1/agent-host/grants/[grantId]/revoke`. This mutating route requires `Idempotency-Key`, records audit/event evidence, hides affected tools, and makes future protected calls fail closed. It does not delete historical grant/action records or execute host actions.",
        "operationId": "revokeAgentHostGrant",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          },
          {
            "name": "grantId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Agent host grant identifier."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/AgentHostGrantRevocationRequest"
              },
              "examples": {
                "ownerDisconnected": {
                  "value": {
                    "reason": "Host disconnected by owner"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Agent host grant revoked or already revoked.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/AgentHostGrantRevocationResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/AgentHostGrantRevocationSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/agent-host/grants/{grantId}/revoke",
          "implementationPath": "/api/platform/v1/agent-host/grants/[grantId]/revoke",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only"
        }
      }
    },
    "/banks/current/frontend-config": {
      "get": {
        "tags": [
          "Banks"
        ],
        "summary": "Get sandbox bank frontend config",
        "description": "Returns the deterministic sandbox bank frontend configuration when the authenticated automation client has `banks.frontends.read`. External URL: `/v1/banks/current/frontend-config`. Current Next.js implementation path: `/api/platform/v1/banks/current/frontend-config`. This read-only route does not require `Idempotency-Key`; it returns public browser-safe frontend metadata only and never exposes bank secrets, raw MyInfo, credit bureau data, bank statements, raw document contents, NRIC/FIN, income-proof documents, full financial profile data, callback signing secrets, staff write controls, provider calls, or enterprise ingress claims. Live bank frontend config remains unavailable until promotion gates have REST, consent, audit, sandbox, callback, and operations evidence. Bank pilot posture remains information/referral and pre-approval only, recommendation and live bank-decision claims remain deferred, and partner-status publication remains private-first.",
        "operationId": "getBankFrontendConfig",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox bank frontend configuration.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformBankFrontendConfigResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformBankFrontendConfigSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/banks/current/frontend-config",
          "implementationPath": "/api/platform/v1/banks/current/frontend-config",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/banks/current/products": {
      "get": {
        "tags": [
          "Banks"
        ],
        "summary": "List sandbox bank products",
        "description": "Returns the deterministic sandbox bank product catalogue when the authenticated automation client has `banks.products.read`. External URL: `/v1/banks/current/products`. Current Next.js implementation path: `/api/platform/v1/banks/current/products`. This read-only route does not require `Idempotency-Key`; it returns public-safe product and advertised-rate summary metadata only and never exposes bank secrets, raw MyInfo, credit bureau data, bank statements, raw document contents, NRIC/FIN, income-proof documents, full financial profile data, borrower-specific pricing, live quote generation, application creation, callback signing secrets, provider calls, or enterprise ingress claims. Live bank products remain unavailable until promotion gates have REST, consent, audit, sandbox, callback, and operations evidence. Bank pilot posture remains information/referral and pre-approval only, recommendation and live bank-decision claims remain deferred, and partner-status publication remains private-first.",
        "operationId": "listBankProducts",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox bank product catalogue.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformBankProductListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformBankProductListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/banks/current/products",
          "implementationPath": "/api/platform/v1/banks/current/products",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/banks/current/rates": {
      "get": {
        "tags": [
          "Banks"
        ],
        "summary": "List sandbox bank rates",
        "description": "Returns the deterministic sandbox bank advertised-rate table when the authenticated automation client has `banks.rates.read`. External URL: `/v1/banks/current/rates`. Current Next.js implementation path: `/api/platform/v1/banks/current/rates`. This read-only route does not require `Idempotency-Key`; it returns public-safe advertised rate-card metadata only and never exposes bank secrets, raw MyInfo, credit bureau data, bank statements, raw document contents, NRIC/FIN, income-proof documents, full financial profile data, borrower-specific pricing, live quote generation, application creation, callback signing secrets, provider calls, or enterprise ingress claims. Live bank rates remain unavailable until promotion gates have REST, consent, audit, sandbox, callback, and operations evidence. Bank pilot posture remains information/referral and pre-approval only, recommendation and live bank-decision claims remain deferred, and partner-status publication remains private-first.",
        "operationId": "listBankRates",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox bank advertised rates.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformBankRateListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformBankRateListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/banks/current/rates",
          "implementationPath": "/api/platform/v1/banks/current/rates",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/banks/current/eligibility": {
      "post": {
        "tags": [
          "Banks"
        ],
        "summary": "Check sandbox bank eligibility",
        "description": "Returns deterministic sandbox eligibility-summary metadata when the authenticated automation client has `banks.eligibility.read`. External URL: `/v1/banks/current/eligibility`. Current Next.js implementation path: `/api/platform/v1/banks/current/eligibility`. This deterministic sandbox check does not require `Idempotency-Key` because it performs no writes, provider calls, live quote generation, application creation, callback delivery, or document handoff. It returns eligibility summary, consent metadata, redaction boundaries, and blocked side effects only and never exposes bank secrets, raw MyInfo, credit bureau data, bank statements, raw document contents, NRIC/FIN, income-proof contents, full financial profile data, borrower-specific pricing, signed storage URLs, callback signing secrets, provider calls, or enterprise ingress claims. Live bank eligibility remains unavailable until promotion gates have REST, consent, audit, sandbox, callback, and operations evidence. Bank pilot posture remains information/referral and pre-approval only, recommendation and live bank-decision claims remain deferred, and partner-status publication remains private-first.",
        "operationId": "checkBankEligibility",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlatformBankEligibilityRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Sandbox bank eligibility summary.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformBankEligibilityResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformBankEligibilitySandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/banks/current/eligibility",
          "implementationPath": "/api/platform/v1/banks/current/eligibility",
          "idempotency": "not_required_deterministic_sandbox_no_side_effects",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/banks/current/callbacks": {
      "post": {
        "tags": [
          "Banks"
        ],
        "summary": "Run sandbox bank callback dry-run",
        "description": "Returns deterministic sandbox bank callback dry-run metadata when the authenticated automation client has `banks.callbacks.manage`. External URL: `/v1/banks/current/callbacks`. Current Next.js implementation path: `/api/platform/v1/banks/current/callbacks`. This sandbox-only route requires `Idempotency-Key` and validates callback signing/replay boundaries without delivering callbacks, calling providers, writing bank systems, creating applications, exposing callback signing secrets, exposing raw request/response bodies, exposing borrower contact data, or claiming API Gateway/mTLS readiness. Live bank callback delivery remains unavailable until promotion gates have REST, consent, audit, sandbox, mTLS-ready callback, operations, and enterprise-ingress evidence. Bank pilot posture remains information/referral and pre-approval only, recommendation and live bank-decision claims remain deferred, and partner-status publication remains private-first.",
        "operationId": "testBankCallbackDelivery",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlatformBankCallbackRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Sandbox bank callback dry-run metadata.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformBankCallbackResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformBankCallbackSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/banks/current/callbacks",
          "implementationPath": "/api/platform/v1/banks/current/callbacks",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/banks/current/applications": {
      "get": {
        "tags": [
          "Banks"
        ],
        "summary": "List sandbox bank applications",
        "description": "Returns deterministic sandbox application summary and status metadata when the authenticated automation client has `banks.applications.read`. External URL: `/v1/banks/current/applications`. Current Next.js implementation path: `/api/platform/v1/banks/current/applications`. This read-only route does not require `Idempotency-Key`; it returns public-safe application summaries, state labels, next-action metadata, document-manifest availability, redaction boundaries, and blocked side effects only and never exposes bank secrets, raw MyInfo, credit bureau data, bank statements, raw document contents, NRIC/FIN, income-proof contents, full financial profile data, signed storage URLs, callback signing secrets, provider calls, or enterprise ingress claims. Live bank applications remain unavailable until promotion gates have REST, consent, audit, sandbox, callback, and operations evidence. Bank pilot posture remains information/referral and pre-approval only, recommendation and live bank-decision claims remain deferred, and partner-status publication remains private-first.",
        "operationId": "listBankApplications",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox bank applications.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformBankApplicationListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformBankApplicationListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/banks/current/applications",
          "implementationPath": "/api/platform/v1/banks/current/applications",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      },
      "post": {
        "tags": [
          "Banks"
        ],
        "summary": "Create sandbox bank application dry-run",
        "description": "Creates deterministic sandbox bank application-intake dry-run metadata when the authenticated automation client has `banks.applications.write`. External URL: `/v1/banks/current/applications`. Current Next.js implementation path: `/api/platform/v1/banks/current/applications`. An exact eligible host grant may add a prepared action and first-party continuation for internal review; the API cannot confirm or reject it. This sandbox-only route requires `Idempotency-Key`, `enable_platform_bank_frontends`, and `enable_platform_bank_workflow_write`; it records replay-safe dry-run and prepared-action metadata only and never persists a bank application row, submits to a bank, calls providers, exposes bank secrets, exposes raw MyInfo, exposes credit bureau data, exposes bank statements, exposes raw document contents, exposes NRIC/FIN, exposes income-proof contents, sends callbacks, sends borrower notifications, returns signed storage URLs, or claims API Gateway/enterprise ingress readiness. Live bank application creation remains unavailable until promotion gates have REST, consent, audit, sandbox, document handoff, callback, operations, and enterprise-ingress evidence. Bank pilot posture remains information/referral and pre-approval only, recommendation and live bank-decision claims remain deferred, and partner-status publication remains private-first.",
        "operationId": "createBankApplication",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlatformBankApplicationCreateRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Sandbox bank application create dry-run metadata with an optional first-party prepared-action continuation.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformBankApplicationCreateResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformBankApplicationCreateSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/banks/current/applications",
          "implementationPath": "/api/platform/v1/banks/current/applications",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/banks/current/applications/{id}": {
      "get": {
        "tags": [
          "Banks"
        ],
        "summary": "Get sandbox bank application status",
        "description": "Returns deterministic sandbox status metadata for a bank application when the authenticated automation client has `banks.applications.read`. External URL: `/v1/banks/current/applications/{id}`. Current Next.js implementation path: `/api/platform/v1/banks/current/applications/[id]`. This read-only route does not require `Idempotency-Key`; it returns application state, safe display labels, next-action metadata, document-manifest availability, redaction boundaries, and blocked side effects only and never exposes bank secrets, raw MyInfo, credit bureau data, bank statements, raw document contents, NRIC/FIN, income-proof contents, full financial profile data, signed storage URLs, callback signing secrets, provider calls, or enterprise ingress claims. Live bank applications remain unavailable until promotion gates have REST, consent, audit, sandbox, callback, and operations evidence. Bank pilot posture remains information/referral and pre-approval only, recommendation and live bank-decision claims remain deferred, and partner-status publication remains private-first.",
        "operationId": "getBankApplicationStatus",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Sandbox bank application identifier."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox bank application status.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformBankApplicationStatusResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformBankApplicationStatusSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/banks/current/applications/{id}",
          "implementationPath": "/api/platform/v1/banks/current/applications/[id]",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/banks/current/applications/{id}/status": {
      "patch": {
        "tags": [
          "Banks"
        ],
        "summary": "Update sandbox bank application status dry-run",
        "description": "Returns deterministic sandbox status-transition dry-run metadata for a bank application when the authenticated automation client has `banks.applications.status.write`. External URL: `/v1/banks/current/applications/{id}/status`. Current Next.js implementation path: `/api/platform/v1/banks/current/applications/[id]/status`. This sandbox-only route requires `Idempotency-Key`, `enable_platform_bank_frontends`, and `enable_platform_bank_workflow_write`; it records replay-safe transition metadata only and never persists application status, writes a bank system, calls providers, exposes bank secrets, exposes raw MyInfo, exposes credit bureau data, exposes bank statements, exposes raw document contents, exposes NRIC/FIN, exposes income-proof contents, sends callbacks, sends borrower notifications, returns signed storage URLs, or claims API Gateway/enterprise ingress readiness. Live bank status writes remain unavailable until promotion gates have REST, consent, audit, sandbox, callback, operations, and enterprise-ingress evidence. Bank pilot posture remains information/referral and pre-approval only, recommendation and live bank-decision claims remain deferred, and partner-status publication remains private-first.",
        "operationId": "updateBankApplicationStatus",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Sandbox bank application identifier."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlatformBankApplicationStatusUpdateRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Sandbox bank application status update dry-run metadata.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformBankApplicationStatusUpdateResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformBankApplicationStatusUpdateSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/banks/current/applications/{id}/status",
          "implementationPath": "/api/platform/v1/banks/current/applications/[id]/status",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/banks/current/applications/{id}/document-manifest": {
      "get": {
        "tags": [
          "Banks"
        ],
        "summary": "Get sandbox bank document manifest",
        "description": "Returns deterministic sandbox document-manifest metadata for a bank application when the authenticated automation client has `banks.documents.read`. External URL: `/v1/banks/current/applications/{id}/document-manifest`. Current Next.js implementation path: `/api/platform/v1/banks/current/applications/[id]/document-manifest`. This read-only route does not require `Idempotency-Key`; it returns document requirement, upload, review, consent-category, and redaction metadata only and never exposes bank secrets, raw MyInfo, credit bureau data, bank statements, raw document contents, NRIC/FIN, income-proof contents, full financial profile data, signed storage URLs, permanent storage paths, callback signing secrets, provider calls, or enterprise ingress claims. Live bank document manifests remain unavailable until promotion gates have REST, consent, audit, signed handoff, sandbox, callback, and operations evidence. Bank pilot posture remains information/referral and pre-approval only, recommendation and live bank-decision claims remain deferred, and partner-status publication remains private-first.",
        "operationId": "getBankApplicationDocumentManifest",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Sandbox bank application identifier."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox bank document manifest.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformBankDocumentManifestResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformBankDocumentManifestSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/banks/current/applications/{id}/document-manifest",
          "implementationPath": "/api/platform/v1/banks/current/applications/[id]/document-manifest",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/banks/current/staff": {
      "get": {
        "tags": [
          "Banks"
        ],
        "summary": "List sandbox bank staff",
        "description": "Returns deterministic sandbox bank staff metadata when the authenticated automation client has `banks.staff.read`. External URL: `/v1/banks/current/staff`. Current Next.js implementation path: `/api/platform/v1/banks/current/staff`. This read-only route does not require `Idempotency-Key`; it returns staff role, branch, active-state, staff-isolation, redaction boundary, and blocked side-effect metadata only and never exposes staff contact fields, raw staff profiles, borrower tokens, bank secrets, raw MyInfo, credit bureau data, bank statements, raw document contents, callback signing secrets, provider calls, or enterprise ingress claims. Live bank staff directories and staff writes remain unavailable until promotion gates have REST, consent, audit, sandbox, callback, and operations evidence. Bank pilot posture remains information/referral and pre-approval only, recommendation and live bank-decision claims remain deferred, and partner-status publication remains private-first.",
        "operationId": "listBankStaff",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox bank staff metadata.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformBankStaffListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformBankStaffListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/banks/current/staff",
          "implementationPath": "/api/platform/v1/banks/current/staff",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/banks/current/audit-events": {
      "get": {
        "tags": [
          "Banks"
        ],
        "summary": "List sandbox bank audit events",
        "description": "Returns deterministic sandbox bank audit event metadata when the authenticated automation client has `banks.audit.read`. External URL: `/v1/banks/current/audit-events`. Current Next.js implementation path: `/api/platform/v1/banks/current/audit-events`. This read-only route does not require `Idempotency-Key`; it returns redacted audit event metadata, safe summaries, resource types, outcomes, redaction boundary, and blocked side-effect metadata only and never exposes raw payloads, request headers, response bodies, API-key digests, staff contact fields, customer PII, bank secrets, raw MyInfo, bank statements, raw documents, callback signing secrets, provider calls, or enterprise ingress claims. Live audit persistence remains unavailable until promotion gates have REST, consent, audit, sandbox, callback, and operations evidence. Bank pilot posture remains information/referral and pre-approval only, recommendation and live bank-decision claims remain deferred, and partner-status publication remains private-first.",
        "operationId": "listBankAuditEvents",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox bank audit event metadata.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformBankAuditEventListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformBankAuditEventListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/banks/current/audit-events",
          "implementationPath": "/api/platform/v1/banks/current/audit-events",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/providers/current/billing-owner-visibility-gates": {
      "get": {
        "tags": [
          "Billing owner visibility"
        ],
        "summary": "List read-only billing-owner visibility gates",
        "description": "Returns billing-owner visibility gates for all platform launch verticals when the authenticated automation client has `platform.billing_owner_visibility.read`. External URL: `/v1/providers/current/billing-owner-visibility-gates`. Current Next.js implementation path: `/api/platform/v1/providers/current/billing-owner-visibility-gates`. This read-only route does not require `Idempotency-Key`; it exposes contract readiness, owner review, usage-summary test IDs, and side-effect blocking only. It never reads partner-facing billing tables, returns raw payment payloads, sends invoices, collects payments, enforces quota, suspends credentials, or calls external finance providers.",
        "operationId": "listCurrentProviderBillingOwnerVisibilityGates",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Read-only billing-owner visibility gates.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BillingOwnerVisibilityGatesResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/BillingOwnerVisibilityGatesSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/providers/current/billing-owner-visibility-gates",
          "implementationPath": "/api/platform/v1/providers/current/billing-owner-visibility-gates",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/consents": {
      "get": {
        "tags": [
          "Consent and data sharing"
        ],
        "summary": "List recipient-scoped data-sharing grants",
        "description": "Returns the data-sharing grants where the authenticated platform organization is the recipient. Requires `consents.read`. External URL: `/v1/consents`. Current Next.js implementation path: `/api/platform/v1/consents`. This read-only route does not require `Idempotency-Key`; consent text, raw user PII, and internal audit ids are never returned.",
        "operationId": "listConsents",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "data_category",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Optional data-category filter."
          },
          {
            "name": "include_inactive",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "true",
                "false"
              ]
            },
            "description": "Include revoked/expired/superseded grants when `true`."
          }
        ],
        "responses": {
          "200": {
            "description": "Recipient-scoped grants.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformConsentListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformConsentListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/consents",
          "implementationPath": "/api/platform/v1/consents",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/consents/{consentId}": {
      "get": {
        "tags": [
          "Consent and data sharing"
        ],
        "summary": "Inspect one recipient-scoped grant",
        "description": "Returns one data-sharing grant where the authenticated platform organization is the recipient. Requires `consents.read`. External URL: `/v1/consents/{consentId}`. Current Next.js implementation path: `/api/platform/v1/consents/[consentId]`. This read-only route does not require `Idempotency-Key`; grants owned by other organizations return 404.",
        "operationId": "getConsent",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "name": "consentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Data-sharing grant identifier."
          },
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "One recipient-scoped grant.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformConsentDetailResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformConsentDetailSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/consents/{consentId}",
          "implementationPath": "/api/platform/v1/consents/[consentId]",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/consents/{consentId}/revoke": {
      "post": {
        "tags": [
          "Consent and data sharing"
        ],
        "summary": "Relinquish a recipient-held grant",
        "description": "Lets the recipient organization relinquish a data-sharing grant it holds, failing closed across all access paths. Requires `consents.write`. External URL: `/v1/consents/{consentId}/revoke`. Current Next.js implementation path: `/api/platform/v1/consents/[consentId]/revoke`. This mutating route requires `Idempotency-Key`. Partner API keys can never create or extend user consent; revocation here is recorded with a `partner_api` source.",
        "operationId": "revokeConsent",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "name": "consentId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Data-sharing grant identifier."
          },
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RevokePlatformConsentRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The relinquished grant.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformConsentDetailResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformConsentRevokedSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/consents/{consentId}/revoke",
          "implementationPath": "/api/platform/v1/consents/[consentId]/revoke",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only"
        }
      }
    },
    "/data-sharing/center": {
      "get": {
        "tags": [
          "Consent and data sharing"
        ],
        "summary": "Inspect the recipient data-sharing center",
        "description": "Returns an aggregate view of the grants and document shares where the authenticated organization is the recipient, plus summary counts. Requires `consents.read`. External URL: `/v1/data-sharing/center`. Current Next.js implementation path: `/api/platform/v1/data-sharing/center`. This read-only route does not require `Idempotency-Key`.",
        "operationId": "getDataSharingCenter",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Recipient data-sharing center.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformDataSharingCenterResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformDataSharingCenterSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/data-sharing/center",
          "implementationPath": "/api/platform/v1/data-sharing/center",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/data-sharing/receipts": {
      "get": {
        "tags": [
          "Consent and data sharing"
        ],
        "summary": "List consent receipts for a grant",
        "description": "Returns append-only consent receipts for a grant the authenticated organization holds. Requires `consents.read` and a `grant_id` query parameter. External URL: `/v1/data-sharing/receipts`. Current Next.js implementation path: `/api/platform/v1/data-sharing/receipts`. This read-only route does not require `Idempotency-Key`; the consent text snapshot is redacted.",
        "operationId": "listDataSharingReceipts",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "name": "grant_id",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Grant the receipts belong to (must be recipient-owned)."
          },
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Consent receipts for the grant.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformConsentReceiptsResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformDataSharingReceiptsSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/data-sharing/receipts",
          "implementationPath": "/api/platform/v1/data-sharing/receipts",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/document-shares": {
      "get": {
        "tags": [
          "Consent and data sharing"
        ],
        "summary": "List recipient-scoped document shares",
        "description": "Returns the document shares where the authenticated organization is the recipient. Requires `document_shares.read`. External URL: `/v1/document-shares`. Current Next.js implementation path: `/api/platform/v1/document-shares`. This read-only route does not require `Idempotency-Key`; manifest metadata only, never raw documents or storage paths.",
        "operationId": "listDocumentShares",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "name": "grant_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Optional grant filter (must be recipient-owned)."
          },
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Recipient-scoped document shares.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformDocumentShareListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformDocumentShareListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/document-shares",
          "implementationPath": "/api/platform/v1/document-shares",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      },
      "post": {
        "tags": [
          "Consent and data sharing"
        ],
        "summary": "Create a document share against an owned grant",
        "description": "Creates a high-risk document share anchored to an active grant the recipient holds. Requires `document_shares.write`. External URL: `/v1/document-shares`. Current Next.js implementation path: `/api/platform/v1/document-shares`. This mutating route requires `Idempotency-Key`. Shares carry manifest metadata and a short-lived handoff TTL only; raw documents, storage paths, and permanent URLs are never accepted or returned.",
        "operationId": "createDocumentShare",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePlatformDocumentShareRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Created document share.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformDocumentShareDetailResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformDocumentShareCreatedSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/document-shares",
          "implementationPath": "/api/platform/v1/document-shares",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only"
        }
      }
    },
    "/document-shares/{shareId}/revoke": {
      "post": {
        "tags": [
          "Consent and data sharing"
        ],
        "summary": "Revoke a recipient-held document share",
        "description": "Revokes a document share the recipient holds, blocking future handoff URL issuance. Requires `document_shares.write`. External URL: `/v1/document-shares/{shareId}/revoke`. Current Next.js implementation path: `/api/platform/v1/document-shares/[shareId]/revoke`. This mutating route requires `Idempotency-Key`. Share-level revocation does not revoke the parent grant.",
        "operationId": "revokeDocumentShare",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "name": "shareId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Document share identifier."
          },
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RevokePlatformDocumentShareRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The revoked document share.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformDocumentShareDetailResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformDocumentShareRevokedSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/document-shares/{shareId}/revoke",
          "implementationPath": "/api/platform/v1/document-shares/[shareId]/revoke",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only"
        }
      }
    },
    "/developers/current/projects": {
      "get": {
        "tags": [
          "Developers"
        ],
        "summary": "List sandbox developer projects",
        "description": "Returns deterministic sandbox developer project summaries when the authenticated automation client has `developers.projects.read`. External URL: `/v1/developers/current/projects`. Current Next.js implementation path: `/api/platform/v1/developers/current/projects`. This read-only route includes source attribution, freshness labels, public-safe unit-type availability, redaction evidence, and side-effect blocking. It never ingests inventory, publishes project sites, sends CRM deliveries, calls production developer feeds, mutates live `new_launches`, or exposes unit numbers, stack identifiers, raw source files, source credentials, buyer identity, reservation notes, internal margins, or private CRM notes. Live reads remain unavailable until promotion gates pass.",
        "operationId": "listDeveloperProjects",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            },
            "description": "Maximum number of sandbox developer projects to return."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            },
            "description": "Opaque pagination cursor from a previous response."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PlatformDeveloperProjectStatus"
            },
            "description": "Filter by sandbox developer project status."
          },
          {
            "name": "freshness_status",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PlatformDeveloperFreshnessStatus"
            },
            "description": "Filter by source freshness label."
          },
          {
            "name": "source_precedence",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PlatformDeveloperSourcePrecedence"
            },
            "description": "Filter by the winning developer inventory source class."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox developer project response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformDeveloperProjectListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformDeveloperProjectListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/developers/current/projects",
          "implementationPath": "/api/platform/v1/developers/current/projects",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/developers/current/projects/{id}": {
      "get": {
        "tags": [
          "Developers"
        ],
        "summary": "Get sandbox developer project detail",
        "description": "Returns one deterministic sandbox developer project detail when the authenticated automation client has `developers.projects.read`. External URL: `/v1/developers/current/projects/{id}`. Current Next.js implementation path: `/api/platform/v1/developers/current/projects/[id]`. This read-only route includes source precedence, freshness attribution, unit redaction, inventory-boundary deferral, and live-promotion review gates. It never exposes unit numbers, stack identifiers, raw source files, source credentials, buyer identity, reservation notes, internal margins, private CRM notes, CRM destinations, showflat writes, or project-site publish controls.",
        "operationId": "getDeveloperProject",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Sandbox developer project ID returned by `GET /v1/developers/current/projects`."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox developer project response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformDeveloperProjectDetailResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformDeveloperProjectDetailSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/developers/current/projects/{id}",
          "implementationPath": "/api/platform/v1/developers/current/projects/[id]",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/developers/current/projects/{id}/lead-routing": {
      "get": {
        "tags": [
          "Developers"
        ],
        "summary": "Get sandbox developer project lead routing",
        "description": "Returns public-safe lead-routing and CRM delivery metadata for one deterministic sandbox developer project when the authenticated automation client has `developers.leads.route`. External URL: `/v1/developers/current/projects/{id}/lead-routing`. Current Next.js implementation path: `/api/platform/v1/developers/current/projects/[id]/lead-routing`. This read-only route exposes routing profile metadata, lead-capture contract fields, redacted payload summaries, CRM delivery state, retryability evidence, and side-effect blocking. It never captures leads, routes live leads, exports contact fields, retries CRM delivery, exposes buyer identity, broker contact details, private notes, CRM destination credentials, raw CRM payloads, write controls, or live routing feeds.",
        "operationId": "getDeveloperProjectLeadRouting",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Sandbox developer project ID returned by `GET /v1/developers/current/projects`."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox developer project response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformDeveloperLeadRoutingResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformDeveloperLeadRoutingSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/developers/current/projects/{id}/lead-routing",
          "implementationPath": "/api/platform/v1/developers/current/projects/[id]/lead-routing",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/developers/current/projects/{id}/inventory-batches": {
      "get": {
        "tags": [
          "Developers"
        ],
        "summary": "List sandbox developer project inventory batches",
        "description": "Returns public-safe inventory batch metadata for one deterministic sandbox developer project when the authenticated automation client has `developers.inventory.read`. External URL: `/v1/developers/current/projects/{id}/inventory-batches`. Current Next.js implementation path: `/api/platform/v1/developers/current/projects/[id]/inventory-batches`. This read-only route exposes source timestamps, freshness labels, validation state, rollback-target presence, redaction evidence, and side-effect blocking. It never uploads inventory, publishes inventory, executes rollback, mutates live `new_launches`, exposes raw source files, source credentials, unit numbers, stack identifiers, buyer identity, reservation notes, internal margins, CRM destinations, project-site publish controls, or live inventory feeds.",
        "operationId": "listDeveloperProjectInventoryBatches",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Sandbox developer project ID returned by `GET /v1/developers/current/projects`."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            },
            "description": "Maximum number of sandbox inventory batches to return."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            },
            "description": "Opaque pagination cursor from a previous response."
          },
          {
            "name": "state",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PlatformDeveloperInventoryBatchState"
            },
            "description": "Filter by sandbox inventory batch validation state."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox developer project response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformDeveloperInventoryBatchListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformDeveloperInventoryBatchListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/developers/current/projects/{id}/inventory-batches",
          "implementationPath": "/api/platform/v1/developers/current/projects/[id]/inventory-batches",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/developers/current/projects/{id}/unit-types": {
      "get": {
        "tags": [
          "Developers"
        ],
        "summary": "List sandbox developer project unit types",
        "description": "Returns public-safe unit-type availability for one deterministic sandbox developer project when the authenticated automation client has `developers.inventory.read`. External URL: `/v1/developers/current/projects/{id}/unit-types`. Current Next.js implementation path: `/api/platform/v1/developers/current/projects/[id]/unit-types`. This read-only route exposes only broad unit-type labels, floor-area ranges, public price-guide labels, source attribution, redaction evidence, and side-effect blocking. It never exposes unit numbers, stack identifiers, exact available-unit counts, raw source files, source credentials, buyer identity, reservation notes, internal margins, CRM destinations, showflat writes, project-site publish controls, or live inventory feeds.",
        "operationId": "listDeveloperProjectUnitTypes",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Sandbox developer project ID returned by `GET /v1/developers/current/projects`."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            },
            "description": "Maximum number of sandbox unit types to return."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            },
            "description": "Opaque pagination cursor from a previous response."
          },
          {
            "name": "availability_status",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PlatformDeveloperUnitTypeAvailabilityStatus"
            },
            "description": "Filter by public-safe unit-type availability status."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox developer project response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformDeveloperProjectUnitTypeListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformDeveloperProjectUnitTypeListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/developers/current/projects/{id}/unit-types",
          "implementationPath": "/api/platform/v1/developers/current/projects/[id]/unit-types",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/developers/current/projects/{id}/price-lists": {
      "get": {
        "tags": [
          "Developers"
        ],
        "summary": "List sandbox developer project price lists",
        "description": "Returns versioned public-safe price-list publications for one deterministic sandbox developer project when the authenticated automation client has `developers.prices.read`. External URL: `/v1/developers/current/projects/{id}/price-lists`. Current Next.js implementation path: `/api/platform/v1/developers/current/projects/[id]/price-lists`. This read-only route exposes effective date, currency, public price ranges, unit-type price labels, disclaimers, source attribution, rollback target metadata, redaction evidence, and side-effect blocking. It never publishes prices, executes rollback, calls live feeds, exposes raw internal margins, buyer identity, reservation notes, unapproved holds, unit numbers, stack identifiers, raw source files, source credentials, or mutates live `new_launches`.",
        "operationId": "listDeveloperProjectPriceLists",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Sandbox developer project ID returned by `GET /v1/developers/current/projects`."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            },
            "description": "Maximum number of sandbox price-list publications to return."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            },
            "description": "Opaque pagination cursor from a previous response."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PlatformDeveloperPriceListStatus"
            },
            "description": "Filter by sandbox price-list publication status."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox developer project response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformDeveloperPriceListListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformDeveloperPriceListListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/developers/current/projects/{id}/price-lists",
          "implementationPath": "/api/platform/v1/developers/current/projects/[id]/price-lists",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/developers/current/projects/{id}/units": {
      "get": {
        "tags": [
          "Developers"
        ],
        "summary": "List sandbox developer project units",
        "description": "Returns redacted restricted unit-stack metadata for one deterministic sandbox developer project when the authenticated automation client has `developers.inventory.read`. External URL: `/v1/developers/current/projects/{id}/units`. Current Next.js implementation path: `/api/platform/v1/developers/current/projects/[id]/units`. This read-only route exposes only hashed unit references, unit-type labels, floor bands, public availability labels, public price bands, source attribution, redaction-review evidence, and side-effect blocking. It never exposes raw unit numbers, stack identifiers, buyer identity, reservation notes, raw option state, unapproved hold status, exact price, internal discounts, internal margins, raw source files, source credentials, write controls, or live inventory feeds.",
        "operationId": "listDeveloperProjectUnits",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Sandbox developer project ID returned by `GET /v1/developers/current/projects`."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            },
            "description": "Maximum number of redacted sandbox units to return."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            },
            "description": "Opaque pagination cursor from a previous response."
          },
          {
            "name": "unit_type_code",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80
            },
            "description": "Filter by sandbox unit type code."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PlatformDeveloperUnitAvailabilityStatus"
            },
            "description": "Filter by redacted sandbox unit availability status."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox developer project response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformDeveloperUnitListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformDeveloperUnitListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/developers/current/projects/{id}/units",
          "implementationPath": "/api/platform/v1/developers/current/projects/[id]/units",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/developers/current/projects/{id}/media": {
      "get": {
        "tags": [
          "Developers"
        ],
        "summary": "List sandbox developer project media assets",
        "description": "Returns public-safe media references for one deterministic sandbox developer project when the authenticated automation client has `developers.inventory.read`. External URL: `/v1/developers/current/projects/{id}/media`. Current Next.js implementation path: `/api/platform/v1/developers/current/projects/[id]/media`. This read-only route exposes floor-plan and brochure metadata, clean scan state, source attribution, public reference URLs, redaction evidence, and side-effect blocking. It never generates signed storage URLs, exposes private document URIs, raw source files, source credentials, buyer identity, reservation notes, document contents, upload controls, project-site publish controls, or live media feeds.",
        "operationId": "listDeveloperProjectMedia",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Sandbox developer project ID returned by `GET /v1/developers/current/projects`."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            },
            "description": "Maximum number of sandbox media assets to return."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            },
            "description": "Opaque pagination cursor from a previous response."
          },
          {
            "name": "kind",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PlatformDeveloperMediaKind"
            },
            "description": "Filter by public-safe sandbox media kind."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox developer project response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformDeveloperMediaListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformDeveloperMediaListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/developers/current/projects/{id}/media",
          "implementationPath": "/api/platform/v1/developers/current/projects/[id]/media",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/developers/current/projects/{id}/showflat-slots": {
      "get": {
        "tags": [
          "Developers"
        ],
        "summary": "List sandbox developer project showflat slots",
        "description": "Returns public-safe showflat slot metadata for one deterministic sandbox developer project when the authenticated automation client has `developers.showflat.read`. External URL: `/v1/developers/current/projects/{id}/showflat-slots`. Current Next.js implementation path: `/api/platform/v1/developers/current/projects/[id]/showflat-slots`. This read-only route exposes public slot windows, capacity labels, waitlist state, reminder-consent requirements, source attribution, redaction evidence, and side-effect blocking. It never creates showflat requests, sends SMS, WhatsApp, or email, writes external calendars, exposes customer contact details, broker contacts, raw calendar IDs, CRM owner private notes, reservation notes, project-site publish controls, or live scheduling feeds.",
        "operationId": "listDeveloperProjectShowflatSlots",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Sandbox developer project ID returned by `GET /v1/developers/current/projects`."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            },
            "description": "Maximum number of sandbox showflat slots to return."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            },
            "description": "Opaque pagination cursor from a previous response."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PlatformDeveloperShowflatSlotStatus"
            },
            "description": "Filter by public-safe sandbox showflat slot status."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox developer project response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformDeveloperShowflatSlotListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformDeveloperShowflatSlotListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/developers/current/projects/{id}/showflat-slots",
          "implementationPath": "/api/platform/v1/developers/current/projects/[id]/showflat-slots",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/developers/current/projects/{id}/showflat-requests": {
      "get": {
        "tags": [
          "Developers"
        ],
        "summary": "List sandbox developer project showflat requests",
        "description": "Returns public-safe sandbox showflat request metadata for one deterministic sandbox developer project when the authenticated automation client has `developers.showflat.read`. External URL: `/v1/developers/current/projects/{id}/showflat-requests`. Current Next.js implementation path: `/api/platform/v1/developers/current/projects/[id]/showflat-requests`. This read-only route exposes redacted request status, requested slot metadata, reminder-consent evidence, source attribution, capacity/waitlist state, and side-effect blocking. It never exposes buyer identity, contact fields, raw messages, broker contacts, raw calendar IDs, CRM owner private notes, or live scheduling feeds.",
        "operationId": "listDeveloperProjectShowflatRequests",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Sandbox developer project ID returned by `GET /v1/developers/current/projects`."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            },
            "description": "Maximum number of sandbox showflat requests to return."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            },
            "description": "Opaque pagination cursor from a previous response."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PlatformDeveloperShowflatRequestStatus"
            },
            "description": "Filter by sandbox showflat request status."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox developer project response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformDeveloperShowflatRequestListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformDeveloperShowflatRequestListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/developers/current/projects/{id}/showflat-requests",
          "implementationPath": "/api/platform/v1/developers/current/projects/[id]/showflat-requests",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      },
      "post": {
        "tags": [
          "Developers"
        ],
        "summary": "Prepare a sandbox developer project showflat request for review",
        "description": "Creates a deterministic sandbox showflat request when the authenticated automation client has `developers.showflat.write`. External URL: `/v1/developers/current/projects/{id}/showflat-requests`. Current Next.js implementation path: `/api/platform/v1/developers/current/projects/[id]/showflat-requests`. This mutating route requires `Idempotency-Key`, validates capacity/waitlist state and reminder consent, and may return a first-party console continuation when an eligible host grant exists. API clients cannot confirm or reject the review, and the route never sends SMS, WhatsApp, email, writes external calendars, routes live CRM payloads, exposes contact fields, mutates production feeds, or writes live scheduling records.",
        "operationId": "createDeveloperProjectShowflatRequest",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Sandbox developer project ID returned by `GET /v1/developers/current/projects`."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlatformDeveloperShowflatRequestCreateRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Sandbox developer showflat request accepted.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformDeveloperShowflatRequestCreateResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformDeveloperShowflatRequestCreatedSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/developers/current/projects/{id}/showflat-requests",
          "implementationPath": "/api/platform/v1/developers/current/projects/[id]/showflat-requests",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/development-professional-services/current/projects": {
      "get": {
        "tags": [
          "Development professional services"
        ],
        "summary": "List sandbox development professional-service projects",
        "description": "Returns deterministic sandbox project, requirement, consultant-task, submission-evidence, milestone, and design-change summaries when the authenticated automation client has `development_professional_services.projects.read`. External URL: `/v1/development-professional-services/current/projects`. Current Next.js implementation path: `/api/platform/v1/development-professional-services/current/projects`. This read-only route does not require `Idempotency-Key` and never exposes professional contact details, raw documents, private comments, authority credentials, raw design diffs, write controls, or live provider integrations. Document uploads, authority submissions, consultant-task writes, milestone writes, and design-change approvals remain explicitly deferred.",
        "operationId": "listDevelopmentProfessionalServicesProjects",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Minimized sandbox development professional-service projects.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/DevelopmentProfessionalServicesProjectListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/DevelopmentProfessionalServicesProjectListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/development-professional-services/current/projects",
          "implementationPath": "/api/platform/v1/development-professional-services/current/projects",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/valuation-appraisal/current/cases": {
      "get": {
        "tags": [
          "Valuation and appraisal"
        ],
        "summary": "List sandbox valuation and appraisal cases",
        "description": "Returns deterministic sandbox case, property-fact, comparable-evidence, inspection, professional-review, and handoff summaries when the authenticated automation client has `valuation_appraisal.cases.read`. External URL: `/v1/valuation-appraisal/current/cases`. Current Next.js implementation path: `/api/platform/v1/valuation-appraisal/current/cases`. This read-only route does not require `Idempotency-Key` and never exposes exact addresses, unit identifiers, ownership identity, client or lender contacts, access instructions, raw comparable records, adjustment notes, raw reports, credentials, write controls, or live provider integrations. Official valuation records, inspection scheduling, report issuance, client or lender handoffs, and comparable-evidence writes remain explicitly deferred and professional review is always required.",
        "operationId": "listValuationAppraisalCases",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Minimized sandbox valuation and appraisal cases.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValuationAppraisalCaseListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/ValuationAppraisalCaseListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/valuation-appraisal/current/cases",
          "implementationPath": "/api/platform/v1/valuation-appraisal/current/cases",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/valuations": {
      "get": {
        "tags": [
          "Valuations"
        ],
        "summary": "Estimate the sale price or rent of one home",
        "description": "Returns the automated valuation engine's result for one home when the authenticated client has `valuations.read`: the same estimate, range, status and up to five comparables as the public valuation page, with the segment's measured accuracy. Pass the subject fields from `/valuations/subjects`. External URL: `/v1/valuations`. Current Next.js implementation path: `/api/platform/v1/valuations`. This read-only route does not require `Idempotency-Key`. Comparables carry month, price, PSF, floor area and storey band only; responses never include unit numbers, transaction IDs, source rows or engine internals. Each API key may make 60 requests a minute and 2,000 a day across both valuation routes; over either limit the route answers `429` `rate_limit_exceeded` with `Retry-After`. When the engine is unavailable the route answers `503` `valuation_engine_unavailable` and never a figure from elsewhere. Free under the partner terms: show \"Estimate by Homejourney\" with a link to the `attribution.url`, show the `disclaimer`, and do not resell, bulk-collect or store estimates beyond 30 days.",
        "operationId": "getValuationEstimate",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "side",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "enum": [
                "sale",
                "rent"
              ]
            },
            "description": "Sale price or monthly rent."
          },
          {
            "name": "segment",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "hdb",
                "private_non_landed",
                "landed",
                "strata_commercial",
                "strata_industrial",
                "whole_industrial"
              ],
              "default": "hdb"
            },
            "description": "The subject segment from `/valuations/subjects`; defaults to `hdb`."
          },
          {
            "name": "block",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "pattern": "^\\d{1,4}[A-Za-z]?$"
            },
            "description": "HDB: the block, such as `96` or `410A`."
          },
          {
            "name": "street",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 2,
              "maxLength": 80
            },
            "description": "HDB and landed: the street name from the subject."
          },
          {
            "name": "flat_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 5,
              "maxLength": 20
            },
            "description": "HDB: one of the subject `flat_types`, such as `4 ROOM`."
          },
          {
            "name": "project",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 2,
              "maxLength": 120
            },
            "description": "Private non-landed, commercial and industrial: the project name from the subject."
          },
          {
            "name": "district",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 28
            },
            "description": "Private non-landed, commercial and industrial: the postal district from the subject."
          },
          {
            "name": "floor_area_sqm",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "minimum": 5
            },
            "description": "Floor area in square metres: from 20 for a home, from 5 for a commercial or industrial unit."
          },
          {
            "name": "property_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "OFFICE",
                "RETAIL",
                "SHOP HOUSE",
                "MULTIPLE-USER FACTORY",
                "BUSINESS PARK",
                "SINGLE-USER FACTORY",
                "WAREHOUSE"
              ]
            },
            "description": "Commercial and industrial: one of the subject `property_types`, such as `OFFICE`; by default the most traded. Only `sale` is estimated."
          },
          {
            "name": "storey",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 90
            },
            "description": "The storey."
          },
          {
            "name": "unit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            },
            "description": "Private non-landed sale: the unit number, such as `#13-51`."
          },
          {
            "name": "house_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "TERRACE",
                "SEMI-DETACHED",
                "DETACHED",
                "CLUSTER"
              ]
            },
            "description": "Landed: the house type."
          },
          {
            "name": "tenure",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "freehold",
                "leasehold"
              ]
            },
            "description": "Landed: the tenure."
          },
          {
            "name": "land_area_sqm",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "minimum": 20,
              "maximum": 5000
            },
            "description": "Landed: land area in square metres."
          },
          {
            "name": "built_year",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer"
            },
            "description": "Landed sale: the year built or rebuilt."
          }
        ],
        "responses": {
          "200": {
            "description": "The engine result with the disclaimer and attribution.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValuationEstimateResponse"
                },
                "examples": {
                  "hdb": {
                    "$ref": "#/components/examples/ValuationEstimateHdb"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/valuations",
          "implementationPath": "/api/platform/v1/valuations",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/valuations/subjects": {
      "get": {
        "tags": [
          "Valuations"
        ],
        "summary": "Find homes the valuation engine can estimate",
        "description": "Returns up to eight address suggestions from the engine's active build when the authenticated client has `valuations.read`: HDB blocks with their flat types, private developments with their district, and landed streets. External URL: `/v1/valuations/subjects`. Current Next.js implementation path: `/api/platform/v1/valuations/subjects`. This read-only route does not require `Idempotency-Key`. Each API key may make 60 requests a minute and 2,000 a day across both valuation routes; over either limit the route answers `429` `rate_limit_exceeded` with `Retry-After`.",
        "operationId": "listValuationSubjects",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "q",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 3,
              "maxLength": 80
            },
            "description": "An address, block and street, development name or 6-digit postal code."
          },
          {
            "name": "scope",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "hdb",
                "all",
                "commercial_industrial"
              ],
              "default": "all"
            },
            "description": "`hdb` limits suggestions to HDB blocks; `commercial_industrial` lists commercial and industrial projects instead of homes."
          }
        ],
        "responses": {
          "200": {
            "description": "Address suggestions with the attribution.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValuationSubjectsResponse"
                },
                "examples": {
                  "search": {
                    "$ref": "#/components/examples/ValuationSubjectsSearch"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/valuations/subjects",
          "implementationPath": "/api/platform/v1/valuations/subjects",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/valuations/embed-keys": {
      "get": {
        "tags": [
          "Valuations"
        ],
        "summary": "List valuation widget keys",
        "description": "Lists the organization's publishable valuation widget keys for the key's environment when the authenticated client has `valuations.embed_keys.read`, newest first, with each key's registered origins and status. External URL: `/v1/valuations/embed-keys`. Current Next.js implementation path: `/api/platform/v1/valuations/embed-keys`. This read-only route does not require `Idempotency-Key`. A widget key is publishable, not a secret: it ships in the partner page and works only on the free public valuation routes, from its registered origins, with a cap of 2,000 estimates a day per key. It never authenticates this API.",
        "operationId": "listValuationEmbedKeys",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "The organization's widget keys.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValuationEmbedKeyListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/valuations/embed-keys",
          "implementationPath": "/api/platform/v1/valuations/embed-keys",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      },
      "post": {
        "tags": [
          "Valuations"
        ],
        "summary": "Create a valuation widget key",
        "description": "Creates a publishable widget key bound to one to five exact origins when the authenticated client has `valuations.embed_keys.write`. An origin is a scheme, host and optional port with no path, such as `https://www.example.com`; plain HTTP is accepted only for `localhost` and `127.0.0.1`. An organization may hold 10 active keys per environment; beyond that the route answers `429` `valuation_embed_key_quota_exceeded`. External URL: `/v1/valuations/embed-keys`. Current Next.js implementation path: `/api/platform/v1/valuations/embed-keys`. This mutating route requires `Idempotency-Key` and records an audit event. A widget key is publishable, not a secret: it ships in the partner page and works only on the free public valuation routes, from its registered origins, with a cap of 2,000 estimates a day per key. It never authenticates this API.",
        "operationId": "createValuationEmbedKey",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValuationEmbedKeyCreateRequest"
              },
              "examples": {
                "agency": {
                  "value": {
                    "label": "Agency website",
                    "allowed_origins": [
                      "https://www.example.com"
                    ]
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "The new widget key.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValuationEmbedKeyResponse"
                },
                "examples": {
                  "agency": {
                    "$ref": "#/components/examples/ValuationEmbedKeyAgency"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/valuations/embed-keys",
          "implementationPath": "/api/platform/v1/valuations/embed-keys",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only"
        }
      }
    },
    "/valuations/embed-keys/{embedKeyId}/revoke": {
      "post": {
        "tags": [
          "Valuations"
        ],
        "summary": "Revoke a valuation widget key",
        "description": "Revokes one of the organization's widget keys when the authenticated client has `valuations.embed_keys.write`. Widgets using the key stop working within 60 seconds; revoking a revoked key returns it unchanged. External URL: `/v1/valuations/embed-keys/{embedKeyId}/revoke`. Current Next.js implementation path: `/api/platform/v1/valuations/embed-keys/[embedKeyId]/revoke`. This mutating route requires `Idempotency-Key` and records an audit event.",
        "operationId": "revokeValuationEmbedKey",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          },
          {
            "name": "embedKeyId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Widget key identifier."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ValuationEmbedKeyRevokeRequest"
              },
              "examples": {
                "siteRetired": {
                  "value": {
                    "reason": "Site retired"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "The widget key, revoked or already revoked.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ValuationEmbedKeyResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/valuations/embed-keys/{embedKeyId}/revoke",
          "implementationPath": "/api/platform/v1/valuations/embed-keys/[embedKeyId]/revoke",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only"
        }
      }
    },
    "/listing-feed/listings": {
      "get": {
        "tags": [
          "Listing feed"
        ],
        "summary": "List feed listings",
        "description": "Lists the organization's feed listings in `external_ref` order when the authenticated client has `listings.read`, with each listing's review state. External URL: `/v1/listing-feed/listings`. Current Next.js implementation path: `/api/platform/v1/listing-feed/listings`. This read-only route does not require `Idempotency-Key`.",
        "operationId": "listListingFeedListings",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "A page of the organization's feed listings.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListingFeedListingListResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/listing-feed/listings",
          "implementationPath": "/api/platform/v1/listing-feed/listings",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/listing-feed/listings/{externalRef}": {
      "put": {
        "tags": [
          "Listing feed"
        ],
        "summary": "Submit or update a feed listing",
        "description": "Submits a listing with its CEA salesperson and marketing authority when the authenticated client has `listings.write`. Every new listing and every change other than price, availability, last seen, expiry and unit count waits for a Homejourney reviewer, and the route answers `202`; a published listing stays live meanwhile. Price and availability changes to a published listing apply at once and answer `200`. A salesperson who is not current on the CEA register, or not registered under the agency licence, is refused with `422` before review. An organization may have 200 listings in review; beyond that the route answers `429` `review_queue_full`. Each status change sends `listing_feed.status_changed`. Live keys need `listings.write` and a live licensed estate agency organization with a feed source, created when live access is approved; otherwise the route answers `403` `listing_feed_not_admitted`. A sandbox key writes only sandbox storage: salesperson `R000001A` publishes, `R000002B` is rejected with `photos_unclear`, `R000003C` answers `salesperson_not_under_agency`, `R000004D` answers `salesperson_not_current`, and any other number stays in review. External URL: `/v1/listing-feed/listings/{externalRef}`. Current Next.js implementation path: `/api/platform/v1/listing-feed/listings/[externalRef]`. This mutating route requires `Idempotency-Key`.",
        "operationId": "putListingFeedListing",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          },
          {
            "name": "externalRef",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 500,
              "pattern": "^[A-Za-z0-9._:-]+$"
            },
            "description": "The partner's own listing reference."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ListingFeedPutRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "A price or availability change applied to the published listing.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListingFeedListingResponse"
                },
                "examples": {
                  "inReview": {
                    "$ref": "#/components/examples/ListingFeedInReview"
                  }
                }
              }
            }
          },
          "202": {
            "description": "The listing revision waits for review.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListingFeedListingResponse"
                },
                "examples": {
                  "inReview": {
                    "$ref": "#/components/examples/ListingFeedInReview"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "422": {
            "$ref": "#/components/responses/UnprocessableEntity"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/listing-feed/listings/{externalRef}",
          "implementationPath": "/api/platform/v1/listing-feed/listings/[externalRef]",
          "changePolicy": "additive_only",
          "idempotency": "required_mutating_route"
        }
      },
      "get": {
        "tags": [
          "Listing feed"
        ],
        "summary": "Read a feed listing",
        "description": "Returns one feed listing's review state when the authenticated client has `listings.read`. External URL: `/v1/listing-feed/listings/{externalRef}`. Current Next.js implementation path: `/api/platform/v1/listing-feed/listings/[externalRef]`. This read-only route does not require `Idempotency-Key`.",
        "operationId": "getListingFeedListing",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "externalRef",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 500,
              "pattern": "^[A-Za-z0-9._:-]+$"
            },
            "description": "The partner's own listing reference."
          }
        ],
        "responses": {
          "200": {
            "description": "The listing's review state.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListingFeedListingResponse"
                },
                "examples": {
                  "inReview": {
                    "$ref": "#/components/examples/ListingFeedInReview"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/listing-feed/listings/{externalRef}",
          "implementationPath": "/api/platform/v1/listing-feed/listings/[externalRef]",
          "changePolicy": "additive_only",
          "idempotency": "not_required_read_only"
        }
      },
      "delete": {
        "tags": [
          "Listing feed"
        ],
        "summary": "Withdraw a feed listing",
        "description": "Withdraws a feed listing at once, with no review, when the authenticated client has `listings.write`: it leaves search and every channel, and any revision in review closes. Withdrawing a withdrawn listing returns it unchanged. Sending the listing again later starts a new review. External URL: `/v1/listing-feed/listings/{externalRef}`. Current Next.js implementation path: `/api/platform/v1/listing-feed/listings/[externalRef]`. This mutating route requires `Idempotency-Key`.",
        "operationId": "withdrawListingFeedListing",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          },
          {
            "name": "externalRef",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 500,
              "pattern": "^[A-Za-z0-9._:-]+$"
            },
            "description": "The partner's own listing reference."
          }
        ],
        "responses": {
          "200": {
            "description": "The withdrawn listing.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListingFeedListingResponse"
                },
                "examples": {
                  "inReview": {
                    "$ref": "#/components/examples/ListingFeedInReview"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/listing-feed/listings/{externalRef}",
          "implementationPath": "/api/platform/v1/listing-feed/listings/[externalRef]",
          "changePolicy": "additive_only",
          "idempotency": "required_mutating_route"
        }
      }
    },
    "/institutional-portfolio/current/summary": {
      "get": {
        "tags": [
          "Institutional portfolio"
        ],
        "summary": "Get an aggregate sandbox institutional portfolio summary",
        "description": "Returns a deterministic aggregate-only sandbox portfolio summary when the authenticated automation client has `portfolio.read`. External URL: `/v1/institutional-portfolio/current/summary`. Current Next.js implementation path: `/api/platform/v1/institutional-portfolio/current/summary`. This read-only route does not require `Idempotency-Key` and never exposes exact asset or unit identifiers, addresses, tenant identity, lease terms, rent or valuation amounts, vendor details, investor reports, source exports, credentials, write controls, or live portfolio integrations. Professional and data review remain required; all portfolio, lease, maintenance, capex, compliance, reporting, and export actions are explicitly deferred.",
        "operationId": "getCurrentInstitutionalPortfolioSummary",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Minimized aggregate sandbox institutional portfolio summary.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InstitutionalPortfolioSummaryResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/InstitutionalPortfolioSummarySandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/institutional-portfolio/current/summary",
          "implementationPath": "/api/platform/v1/institutional-portfolio/current/summary",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/property-management/current/summary": {
      "get": {
        "tags": [
          "Property management"
        ],
        "summary": "Get a privacy-minimized sandbox property management summary",
        "description": "Returns a deterministic privacy-minimized aggregate sandbox property-management and MCST summary when the authenticated automation client has `property_management.units.read`. External URL: `/v1/property-management/current/summary`. Current Next.js implementation path: `/api/platform/v1/property-management/current/summary`. This read-only route does not require `Idempotency-Key` and never exposes exact units or strata lots, addresses, resident, owner, or tenant identity, contact details, vendor identity or commercial details, raw notices or incidents, budgets or levies, access-control data, credentials, write controls, exports, or live property-management integrations. Estate-operator review remains required; all unit, resident, maintenance, notice, incident, vendor, payment, levy, budget, access-control, and export actions are explicitly deferred.",
        "operationId": "getCurrentPropertyManagementSummary",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Privacy-minimized aggregate sandbox property management summary.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PropertyManagementSummaryResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PropertyManagementSummarySandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/property-management/current/summary",
          "implementationPath": "/api/platform/v1/property-management/current/summary",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/survey-title-geospatial/current/summary": {
      "get": {
        "tags": [
          "Survey, title and geospatial"
        ],
        "summary": "Get source-attributed survey, title and geospatial context",
        "description": "Returns deterministic public-safe sandbox parcel, map, title-posture, source-attribution, freshness, licensing, and conflict-review context when the authenticated automation client has `geospatial.read`. External URL: `/v1/survey-title-geospatial/current/summary`. Current Next.js implementation path: `/api/platform/v1/survey-title-geospatial/current/summary`. This read-only route does not require `Idempotency-Key`, does not call live upstream agencies, and never exposes exact addresses, parcel or lot identifiers, title identifiers, owner or interested-party identity, exact cadastral geometry or coordinates, raw source payloads, or credentials. It does not perform an authoritative boundary or title determination. Registered-surveyor or lawyer review remains required; title-record retrieval and source-conflict record access remain deferred record-level capabilities.",
        "operationId": "getCurrentSurveyTitleGeospatialSummary",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Source-attributed public-safe sandbox survey/title/geospatial context.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SurveyTitleGeospatialSummaryResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/SurveyTitleGeospatialSummarySandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/survey-title-geospatial/current/summary",
          "implementationPath": "/api/platform/v1/survey-title-geospatial/current/summary",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/providers/current/import-export-readiness": {
      "get": {
        "tags": [
          "Import/export readiness"
        ],
        "summary": "List read-only import/export readiness contracts",
        "description": "Returns Phase 0 import/export readiness contracts for all platform launch verticals when the authenticated automation client has `platform.import_export_readiness.read`. External URL: `/v1/providers/current/import-export-readiness`. Current Next.js implementation path: `/api/platform/v1/providers/current/import-export-readiness`. This read-only route does not require `Idempotency-Key`; it exposes preview, validation, dedupe, rollback, export, offboarding, audit readiness posture, blocked execution gates, and a redacted service-role ledger summary only. It never confirms imports, writes database rows, returns raw uploaded files, returns source batch keys, creates export downloads, executes rollback or offboarding actions, exposes private source evidence, or calls external providers.",
        "operationId": "listCurrentProviderImportExportReadiness",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Read-only import/export readiness contracts.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ImportExportReadinessResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/ImportExportReadinessSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/providers/current/import-export-readiness",
          "implementationPath": "/api/platform/v1/providers/current/import-export-readiness",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/insurance-move-in/current/cases": {
      "get": {
        "tags": [
          "Insurance and move-in"
        ],
        "summary": "List sandbox insurance and move-in coordination cases",
        "description": "Returns deterministic, minimized sandbox coordination cases when the authenticated automation client has `insurance_move_in.cases.read`. External URL: `/v1/insurance-move-in/current/cases`. Current Next.js implementation path: `/api/platform/v1/insurance-move-in/current/cases`. The response exposes planning-area and category summaries only; customer identity, contact details, exact address, unit number, policy or claim data, payment data, and partner credentials remain unavailable. Live reads and every provider interaction remain deferred.",
        "operationId": "listInsuranceMoveInCases",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Minimized sandbox insurance and move-in coordination cases.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InsuranceMoveInCaseListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/InsuranceMoveInCaseListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/insurance-move-in/current/cases",
          "implementationPath": "/api/platform/v1/insurance-move-in/current/cases",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/insurance-move-in/current/cases/{caseId}/actions": {
      "post": {
        "tags": [
          "Insurance and move-in"
        ],
        "summary": "Prepare a sandbox insurance or move-in review checklist",
        "description": "Prepares either an insurance quote-request checklist or move-in service-request checklist when the authenticated automation client has `insurance_move_in.cases.write`, sends `confirm_prepare: true`, and provides an `Idempotency-Key`. External URL: `/v1/insurance-move-in/current/cases/{caseId}/actions`. Current Next.js implementation path: `/api/platform/v1/insurance-move-in/current/cases/[caseId]/actions`. The response requires licensed-insurance-professional or move-in-coordinator review and exposes no confirmation or execution route. It never returns advice, recommends a product, requests a quote, binds or changes a policy, submits a claim, creates a booking, schedules an appointment, contacts a partner, shares identity or exact address data, initiates payment, or calls an external system.",
        "operationId": "prepareInsuranceMoveInCaseAction",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          },
          {
            "name": "caseId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/InsuranceMoveInPrepareRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Prepared review-only sandbox checklist.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InsuranceMoveInPrepareResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/InsuranceMoveInPrepareSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/insurance-move-in/current/cases/{caseId}/actions",
          "implementationPath": "/api/platform/v1/insurance-move-in/current/cases/[caseId]/actions",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/providers/current/invoice-delivery-reconciliation": {
      "get": {
        "tags": [
          "Billing"
        ],
        "summary": "List read-only invoice delivery reconciliation gates",
        "description": "Returns invoice delivery reconciliation gates for all platform launch verticals when the authenticated automation client has `platform.billing_owner_visibility.read`. External URL: `/v1/providers/current/invoice-delivery-reconciliation`. Current Next.js implementation path: `/api/platform/v1/providers/current/invoice-delivery-reconciliation`. This read-only route does not require `Idempotency-Key`; it exposes delivery channel policy, draft-only destination metadata, missing receipt/acknowledgement/audit prerequisites, blocked invoice delivery/payment/quota/credential side effects, and next operator actions only. It never reads usage event tables or partner-facing billing tables, returns raw usage payloads, raw payment payloads, delivery receipt payloads, or recipient acknowledgement payloads, sends invoices, records delivery receipts, collects payments, enforces quota, suspends credentials, or calls external finance providers.",
        "operationId": "listCurrentProviderInvoiceDeliveryReconciliation",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Read-only invoice delivery reconciliation gates.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceDeliveryReconciliationResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/InvoiceDeliveryReconciliationSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/providers/current/invoice-delivery-reconciliation",
          "implementationPath": "/api/platform/v1/providers/current/invoice-delivery-reconciliation",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/providers/current/invoice-credit-note-chargeback-gates": {
      "get": {
        "tags": [
          "Billing"
        ],
        "summary": "List read-only invoice credit-note and chargeback evidence gates",
        "description": "Returns invoice credit-note and chargeback evidence gates for all platform launch verticals when the authenticated automation client has `platform.billing_owner_visibility.read`. External URL: `/v1/providers/current/invoice-credit-note-chargeback-gates`. Current Next.js implementation path: `/api/platform/v1/providers/current/invoice-credit-note-chargeback-gates`. This read-only route does not require `Idempotency-Key`; it exposes payment-collection gate, refund/dispute gate, credit-note policy, chargeback evidence policy, adjustment ledger, processor credit-note, customer-notice, support-owner, and audit prerequisites; blocked credit-note, chargeback evidence, chargeback provider, payment, quota, and credential side effects; hidden payment-method, credit-note, and chargeback evidence payload posture; and next operator actions only. It never reads usage event tables or partner-facing billing tables, returns raw usage payloads, raw payment payloads, payment method payloads, credit-note payloads, chargeback evidence payloads, chargeback payloads, or processor payloads, sends invoices, records delivery receipts, collects payments, mutates credit notes or chargeback evidence, enforces quota, suspends credentials, or calls external finance providers.",
        "operationId": "listCurrentProviderInvoiceCreditNoteChargebackGates",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Read-only invoice credit-note and chargeback evidence gates.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceCreditNoteChargebackGatesResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/InvoiceCreditNoteChargebackGatesSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/providers/current/invoice-credit-note-chargeback-gates",
          "implementationPath": "/api/platform/v1/providers/current/invoice-credit-note-chargeback-gates",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/providers/current/invoice-dry-runs": {
      "get": {
        "tags": [
          "Usage summary"
        ],
        "summary": "List read-only current provider invoice dry runs",
        "description": "Returns invoice dry-run previews for all platform launch verticals when the authenticated automation client has `platform.billing_owner_visibility.read`. External URL: `/v1/providers/current/invoice-dry-runs`. Current Next.js implementation path: `/api/platform/v1/providers/current/invoice-dry-runs`. This read-only route does not require `Idempotency-Key`; it exposes deterministic invoice draft previews, approved rollup line items, and manual-review posture only. It never reads usage event tables or partner-facing billing tables, returns raw usage payloads or raw payment payloads, sends invoices, collects payments, enforces quota, suspends credentials, or calls external finance providers.",
        "operationId": "listCurrentProviderInvoiceDryRuns",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Read-only invoice dry-run previews.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceDryRunsResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/InvoiceDryRunsSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/providers/current/invoice-dry-runs",
          "implementationPath": "/api/platform/v1/providers/current/invoice-dry-runs",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/providers/current/invoice-payment-collection-gates": {
      "get": {
        "tags": [
          "Billing"
        ],
        "summary": "List read-only invoice payment collection gates",
        "description": "Returns invoice payment collection gates for all platform launch verticals when the authenticated automation client has `platform.billing_owner_visibility.read`. External URL: `/v1/providers/current/invoice-payment-collection-gates`. Current Next.js implementation path: `/api/platform/v1/providers/current/invoice-payment-collection-gates`. This read-only route does not require `Idempotency-Key`; it exposes payment collection prerequisites, blocked payment-provider calls, hidden payment-method payload posture, missing refund/dispute/support/audit prerequisites, blocked delivery/payment/quota/credential side effects, and next operator actions only. It never reads usage event tables or partner-facing billing tables, returns raw usage payloads, raw payment payloads, payment method payloads, or processor payloads, sends invoices, records delivery receipts, collects payments, mutates refunds or disputes, enforces quota, suspends credentials, or calls external finance providers.",
        "operationId": "listCurrentProviderInvoicePaymentCollectionGates",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Read-only invoice payment collection gates.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoicePaymentCollectionGatesResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/InvoicePaymentCollectionGatesSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/providers/current/invoice-payment-collection-gates",
          "implementationPath": "/api/platform/v1/providers/current/invoice-payment-collection-gates",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/providers/current/invoice-refund-dispute-gates": {
      "get": {
        "tags": [
          "Billing"
        ],
        "summary": "List read-only invoice refund dispute gates",
        "description": "Returns invoice refund/dispute gates for all platform launch verticals when the authenticated automation client has `platform.billing_owner_visibility.read`. External URL: `/v1/providers/current/invoice-refund-dispute-gates`. Current Next.js implementation path: `/api/platform/v1/providers/current/invoice-refund-dispute-gates`. This read-only route does not require `Idempotency-Key`; it exposes payment-collection completion, refund-policy, dispute-policy, processor-refund contract, chargeback-policy, support-owner, customer-notice, and audit prerequisites; blocked refund, dispute, chargeback, provider-call, payment, quota, and credential side effects; hidden payment-method, refund-receipt, and dispute-evidence payload posture; and next operator actions only. It never reads usage event tables or partner-facing billing tables, returns raw usage payloads, raw payment payloads, payment method payloads, refund receipt payloads, dispute evidence payloads, chargeback payloads, or processor payloads, sends invoices, records delivery receipts, collects payments, mutates refunds or disputes, enforces quota, suspends credentials, or calls external finance providers.",
        "operationId": "listCurrentProviderInvoiceRefundDisputeGates",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Read-only invoice refund dispute gates.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceRefundDisputeGatesResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/InvoiceRefundDisputeGatesSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/providers/current/invoice-refund-dispute-gates",
          "implementationPath": "/api/platform/v1/providers/current/invoice-refund-dispute-gates",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/providers/current/invoice-send-gates": {
      "get": {
        "tags": [
          "Billing"
        ],
        "summary": "List read-only invoice send gates",
        "description": "Returns external invoice-send gates for all platform launch verticals when the authenticated automation client has `platform.billing_owner_visibility.read`. External URL: `/v1/providers/current/invoice-send-gates`. Current Next.js implementation path: `/api/platform/v1/providers/current/invoice-send-gates`. This read-only route does not require `Idempotency-Key`; it exposes finance-review prerequisites, dry-run invoice readiness, blocked delivery/payment/quota/credential side effects, and next operator actions only. It never reads usage event tables or partner-facing billing tables, returns raw usage payloads or raw payment payloads, sends invoices, collects payments, enforces quota, suspends credentials, or calls external finance providers.",
        "operationId": "listCurrentProviderInvoiceSendGates",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Read-only external invoice-send gates.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/InvoiceSendGatesResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/InvoiceSendGatesSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/providers/current/invoice-send-gates",
          "implementationPath": "/api/platform/v1/providers/current/invoice-send-gates",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/official-sources": {
      "get": {
        "tags": [
          "Official sources"
        ],
        "summary": "List sandbox official-source registry entries",
        "description": "Returns source registry entries for the sandbox official-source fixture surface when the authenticated automation client has `official_sources.read`. External URL: `/v1/official-sources`. Current Next.js implementation path: `/api/platform/v1/official-sources`. This read-only route does not require `Idempotency-Key`; SDK, CLI, and MCP read adapters may call this sandbox route while live upstream agency reads, real credential lookups, and source refresh jobs remain deferred.",
        "operationId": "listOfficialSources",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox official-source response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OfficialSourceListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/OfficialSourceListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/official-sources",
          "implementationPath": "/api/platform/v1/official-sources",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/official-sources/datasets": {
      "get": {
        "tags": [
          "Official sources"
        ],
        "summary": "List sandbox official-source datasets",
        "description": "Returns source-attributed sandbox official-source dataset summaries when the authenticated automation client has `official_sources.datasets.read`. External URL: `/v1/official-sources/datasets`. Current Next.js implementation path: `/api/platform/v1/official-sources/datasets`. This route never returns upstream credentials or restricted raw payloads.",
        "operationId": "listOfficialSourceDatasets",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "source_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Filter by official source identifier."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox official-source response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OfficialSourceDatasetsResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/OfficialSourceDatasetsSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/official-sources/datasets",
          "implementationPath": "/api/platform/v1/official-sources/datasets",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/official-sources/freshness": {
      "get": {
        "tags": [
          "Official sources"
        ],
        "summary": "List sandbox official-source freshness labels",
        "description": "Returns source-attributed sandbox freshness labels when the authenticated automation client has `official_sources.freshness.read`. External URL: `/v1/official-sources/freshness`. Current Next.js implementation path: `/api/platform/v1/official-sources/freshness`. Freshness reads are read-only and do not trigger upstream refreshes; live upstream freshness reads remain deferred.",
        "operationId": "listOfficialSourceFreshness",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "source_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Filter by official source identifier."
          },
          {
            "name": "dataset_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Filter by official-source dataset identifier."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox official-source response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OfficialSourceFreshnessResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/OfficialSourceFreshnessSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/official-sources/freshness",
          "implementationPath": "/api/platform/v1/official-sources/freshness",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/official-sources/runs": {
      "get": {
        "tags": [
          "Official sources"
        ],
        "summary": "List sandbox official-source run evidence",
        "description": "Returns sandbox fixture-refresh run evidence when the authenticated automation client has the explicitly granted `official_sources.audit.read` scope. External URL: `/v1/official-sources/runs`. Current Next.js implementation path: `/api/platform/v1/official-sources/runs`. This read-only route does not run refreshes, call upstream agencies, mutate datasets, or return credentials; live upstream run history remains deferred.",
        "operationId": "listOfficialSourceRuns",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "source_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Filter by official source identifier."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox official-source response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OfficialSourceRunsResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/OfficialSourceRunsSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/official-sources/runs",
          "implementationPath": "/api/platform/v1/official-sources/runs",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/official-sources/runs/fixture-refresh": {
      "post": {
        "tags": [
          "Official sources"
        ],
        "summary": "Run sandbox official-source fixture refresh",
        "description": "Runs deterministic sandbox fixture-refresh evidence when the authenticated automation client has `official_sources.refresh`. External URL: `/v1/official-sources/runs/fixture-refresh`. Current Next.js implementation path: `/api/platform/v1/official-sources/runs/fixture-refresh`. This route requires `Idempotency-Key`, never calls upstream agencies, never uses production credentials, never mutates live datasets, never sends callbacks or production webhooks, and records only idempotency/request-event evidence.",
        "operationId": "runOfficialSourceFixtureRefresh",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/OfficialSourceFixtureRefreshRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Sandbox official-source fixture refresh evidence.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OfficialSourceFixtureRefreshResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/OfficialSourceFixtureRefreshSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/official-sources/runs/fixture-refresh",
          "implementationPath": "/api/platform/v1/official-sources/runs/fixture-refresh",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/official-sources/attribution/explain": {
      "get": {
        "tags": [
          "Official sources"
        ],
        "summary": "Explain sandbox official-source attribution",
        "description": "Returns public-safe source-attribution explanation records for sandbox official-source datasets or records when the authenticated automation client has `official_sources.read`. External URL: `/v1/official-sources/attribution/explain`. Current Next.js implementation path: `/api/platform/v1/official-sources/attribution/explain`. This read-only route validates attribution metadata and safety guardrails without calling upstream agencies, running fixture refreshes, mutating live datasets, or returning raw record payloads; live attribution explanations remain deferred.",
        "operationId": "explainOfficialSourceAttribution",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "source_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Filter by official source identifier."
          },
          {
            "name": "dataset_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Filter by official-source dataset identifier."
          },
          {
            "name": "record_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 160
            },
            "description": "Optional sandbox normalized record identifier. When omitted, explanations are returned at dataset level."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox official-source response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OfficialSourceAttributionExplanationResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/OfficialSourceAttributionExplanationSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/official-sources/attribution/explain",
          "implementationPath": "/api/platform/v1/official-sources/attribution/explain",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/official-sources/records/search": {
      "get": {
        "tags": [
          "Official sources"
        ],
        "summary": "Search sandbox official-source records",
        "description": "Searches deterministic sandbox official-source records with complete source attribution when the authenticated automation client has `official_sources.read`. External URL: `/v1/official-sources/records/search`. Current Next.js implementation path: `/api/platform/v1/official-sources/records/search`. The response contains normalized public-safe fields only; restricted raw upstream payloads and live upstream record search remain unavailable.",
        "operationId": "searchOfficialSourceRecords",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 120
            },
            "description": "Public-safe text search over sandbox normalized record fields."
          },
          {
            "name": "source_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Filter by official source identifier."
          },
          {
            "name": "dataset_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Filter by official-source dataset identifier."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            },
            "description": "Maximum records to return."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox official-source response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/OfficialSourceRecordsSearchResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/OfficialSourceRecordsSearchSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/official-sources/records/search",
          "implementationPath": "/api/platform/v1/official-sources/records/search",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/onboarding/contracts/packages": {
      "get": {
        "tags": [
          "Onboarding"
        ],
        "summary": "List onboarding contract packages",
        "description": "Returns the canonical onboarding contract package catalog used by readiness, partner-submitted contract evidence, and admin commercial approval gates. External URL: `/v1/onboarding/contracts/packages`. Current Next.js implementation path: `/api/platform/v1/onboarding/contracts/packages`. This read-only route does not require `Idempotency-Key`; it exposes package capabilities and blocked claims for humans, SDKs, CLIs, MCP servers, and AI agents without launching signing sessions or creating credentials.",
        "operationId": "listOnboardingContractPackages",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Registered onboarding contract packages.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformContractPackageCatalogResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformContractPackageCatalog"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/onboarding/contracts/packages",
          "implementationPath": "/api/platform/v1/onboarding/contracts/packages",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "requiredScope": "organizations.read"
        }
      }
    },
    "/onboarding/contracts/envelopes/current": {
      "get": {
        "tags": [
          "Onboarding"
        ],
        "summary": "Inspect the current onboarding contract envelope",
        "description": "Returns the redacted current contract-envelope state for the authenticated platform organization. External URL: `/v1/onboarding/contracts/envelopes/current`. Current Next.js implementation path: `/api/platform/v1/onboarding/contracts/envelopes/current`. This read-only route does not require `Idempotency-Key`; it exposes provider-neutral contract state, commercial gate readiness, and evidence-presence booleans without raw documents, signer private details, signing-provider payloads, or credential creation.",
        "operationId": "getOnboardingContractEnvelope",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Current onboarding contract-envelope state.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformContractEnvelopeCurrentResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformContractEnvelopeCurrentSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/onboarding/contracts/envelopes/current",
          "implementationPath": "/api/platform/v1/onboarding/contracts/envelopes/current",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "requiredScope": "organizations.read"
        }
      }
    },
    "/onboarding/readiness": {
      "get": {
        "tags": [
          "Onboarding"
        ],
        "summary": "Inspect onboarding readiness",
        "description": "Returns the headless service-provider sandbox onboarding readiness contract for the authenticated platform organization. External URL: `/v1/onboarding/readiness`. Current Next.js implementation path: `/api/platform/v1/onboarding/readiness`. This read-only route does not require `Idempotency-Key`; mutating credential, signing, live-access, mortgage, conveyancing, and marketplace actions remain blocked or manual-reviewed.",
        "operationId": "getOnboardingReadiness",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Current onboarding readiness and action contract.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformOnboardingReadinessResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformOnboardingReadinessSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/onboarding/readiness",
          "implementationPath": "/api/platform/v1/onboarding/readiness",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "requiredScope": "organizations.read"
        }
      }
    },
    "/onboarding/terms/acceptance": {
      "post": {
        "tags": [
          "Onboarding"
        ],
        "summary": "Accept current sandbox onboarding terms",
        "description": "Records sandbox clickwrap-style acceptance for the current service-provider platform terms package and returns the refreshed onboarding readiness contract. External URL: `/v1/onboarding/terms/acceptance`. Current Next.js implementation path: `/api/platform/v1/onboarding/terms/acceptance`. This sandbox-only mutating route requires `Idempotency-Key` and does not create API credentials, launch contract signing, or request live access; live terms promotion remains blocked.",
        "operationId": "acceptOnboardingTerms",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlatformOnboardingTermsAcceptanceRequest"
              },
              "examples": {
                "sandbox": {
                  "summary": "Accept current service-provider sandbox terms",
                  "value": {
                    "accepted_terms": true,
                    "terms_package_id": "platform_service_provider_terms",
                    "terms_version": "2026.06",
                    "consent": {
                      "data_sharing_acknowledged": true,
                      "consent_version": "2026.06"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Terms acceptance evidence and refreshed readiness contract.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformOnboardingTermsAcceptanceResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformOnboardingTermsAcceptanceSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/onboarding/terms/acceptance",
          "implementationPath": "/api/platform/v1/onboarding/terms/acceptance",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "requiredScope": "onboarding.write",
          "sandboxOnly": true
        }
      }
    },
    "/onboarding/credentials/sandbox-key": {
      "post": {
        "tags": [
          "Onboarding"
        ],
        "summary": "Create a sandbox onboarding API key",
        "description": "Creates a sandbox-only API key after current terms acceptance and credential self-service gates are complete. External URL: `/v1/onboarding/credentials/sandbox-key`. Current Next.js implementation path: `/api/platform/v1/onboarding/credentials/sandbox-key`. This mutating route requires `Idempotency-Key` and `credentials.write`; live credential creation remains operator-controlled. The raw key is revealed only on the initial successful response; replay-safe idempotency storage omits raw key material.",
        "operationId": "createOnboardingSandboxCredential",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlatformOnboardingSandboxCredentialRequest"
              },
              "examples": {
                "sandbox": {
                  "summary": "Create a sandbox integration key",
                  "value": {
                    "key_name": "Sandbox integration key",
                    "requested_scopes": [
                      "organizations.read",
                      "listings.read",
                      "viewings.write"
                    ],
                    "expires_in_days": 30
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Sandbox credential metadata, one-time raw key reveal, and refreshed readiness contract.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformOnboardingSandboxCredentialResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformOnboardingSandboxCredentialCreated"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/onboarding/credentials/sandbox-key",
          "implementationPath": "/api/platform/v1/onboarding/credentials/sandbox-key",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "requiredScope": "credentials.write",
          "sandboxOnly": true
        }
      }
    },
    "/onboarding/evidence": {
      "post": {
        "tags": [
          "Onboarding"
        ],
        "summary": "Submit onboarding evidence",
        "description": "Records sandbox partner-submitted support-owner, business-authority, business-eligibility, or contract-signature evidence for service-provider onboarding and returns refreshed readiness. External URL: `/v1/onboarding/evidence`. Current Next.js implementation path: `/api/platform/v1/onboarding/evidence`. This sandbox-only mutating route requires `Idempotency-Key` and `onboarding.write`, requires current terms acceptance first, records partner assertions for manual live review, and never creates live credentials or bypasses operator approval. Business-eligibility submissions are cross-checked against the ACRA registered-entities dataset on data.gov.sg: a missing or de-registered UEN is rejected with the `acra_registered_business` gate, while a name mismatch or upstream outage is recorded for manual review.",
        "operationId": "submitOnboardingEvidence",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlatformOnboardingEvidenceSubmissionRequest"
              },
              "examples": {
                "supportOwner": {
                  "summary": "Submit support owner evidence",
                  "value": {
                    "evidence_key": "support_owner_recorded",
                    "support_owner": {
                      "name": "Jane Tan",
                      "email": "support@example.com",
                      "role": "Operations lead",
                      "technical_owner_email": "tech@example.com"
                    }
                  }
                },
                "contractSignature": {
                  "summary": "Record external contract signature evidence",
                  "value": {
                    "evidence_key": "contract_signature_recorded",
                    "contract_signature": {
                      "signing_rail": "sign_with_singpass",
                      "signature_status": "signed",
                      "evidence_reference": "swsg:contract:demo-2026-06",
                      "signer_display_name": "Jane Tan",
                      "signer_role": "Director",
                      "signer_authority_source": "ACRA BizFile appointment",
                      "signed_at": "2026-06-05T00:00:00.000Z"
                    }
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Partner-submitted evidence record and refreshed readiness contract. Live access still requires manual review.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformOnboardingEvidenceSubmissionResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformOnboardingEvidenceSubmitted"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/onboarding/evidence",
          "implementationPath": "/api/platform/v1/onboarding/evidence",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "requiredScope": "onboarding.write",
          "sandboxOnly": true
        }
      }
    },
    "/onboarding/live-access/request": {
      "post": {
        "tags": [
          "Onboarding"
        ],
        "summary": "Request manual live-access review",
        "description": "Moves a sandbox onboarding application into manual live-access review after terms, sandbox credential, support-owner, business-authority, and contract evidence gates are complete. External URL: `/v1/onboarding/live-access/request`. Current Next.js implementation path: `/api/platform/v1/onboarding/live-access/request`. This route requires `Idempotency-Key` and `onboarding.write`, never creates live credentials, and keeps live key issuance operator-controlled.",
        "operationId": "requestOnboardingLiveAccess",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlatformOnboardingLiveAccessRequest"
              },
              "examples": {
                "sandbox": {
                  "summary": "Request live-access review",
                  "value": {
                    "requested_live_access": true
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Live-access review request and refreshed readiness contract.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformOnboardingLiveAccessResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformOnboardingLiveAccessRequested"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/onboarding/live-access/request",
          "implementationPath": "/api/platform/v1/onboarding/live-access/request",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "requiredScope": "onboarding.write"
        }
      }
    },
    "/organizations/current": {
      "get": {
        "tags": [
          "Organizations"
        ],
        "summary": "Inspect the current platform organization",
        "description": "Returns the organization, integration client, API-key prefix, explicit principal, scopes, and environment for the authenticated platform API key. External URL: `/v1/organizations/current`. Current Next.js implementation path: `/api/platform/v1/organizations/current`. This read-only route does not require `Idempotency-Key`.",
        "operationId": "getCurrentOrganization",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Current organization and credential context.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentOrganizationResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/CurrentOrganizationSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/organizations/current",
          "implementationPath": "/api/platform/v1/organizations/current",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/workspaces/current": {
      "get": {
        "tags": [
          "Organizations"
        ],
        "summary": "Inspect the current logical workspace and module states",
        "description": "Returns the logical workspace, exact environment incarnation, and safe module activation states bound to the authenticated API key organization. External URL: `/v1/workspaces/current`. Current Next.js implementation path: `/api/platform/v1/workspaces/current`. This route never infers another workspace from names, slugs, or row order.",
        "operationId": "getCurrentWorkspace",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Current logical workspace, incarnation, and module status.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentWorkspaceResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/CurrentWorkspaceSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/workspaces/current",
          "implementationPath": "/api/platform/v1/workspaces/current",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/products": {
      "get": {
        "tags": [
          "Products"
        ],
        "summary": "List platform API products",
        "description": "Returns the authenticated organization product catalog across REST routes, SDK/CLI/MCP visibility, required scopes, webhook events, live-promotion gates, status components, pricing posture, and AI-agent policy. External URL: `/v1/products`. Current Next.js implementation path: `/api/platform/v1/products`. This read-only route does not require `Idempotency-Key`; it never grants scopes, creates credentials, launches signing, calls providers, or returns private customer data.",
        "operationId": "listPlatformProducts",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Machine-readable platform product catalog.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformProductCatalogResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformProductCatalogSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/products",
          "implementationPath": "/api/platform/v1/products",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "requiredScope": "organizations.read"
        }
      }
    },
    "/providers/current/ai/graph": {
      "get": {
        "tags": [
          "Provider AI"
        ],
        "summary": "Inspect current sandbox provider AI graph",
        "description": "Returns a sandbox-only provider AI workspace graph when the authenticated automation client has `provider_workspace.read`. External URL: `/v1/providers/current/ai/graph`. Current Next.js implementation path: `/api/platform/v1/providers/current/ai/graph`. This read-only route does not require `Idempotency-Key`; SDK, CLI, and MCP graph reads may call this sandbox route, while live private customer data, raw messages, provider tokens, booking write controls, and direct provider-system calls remain blocked until explicit provider install/grant approval.",
        "operationId": "getCurrentProviderAiGraph",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Current sandbox provider AI graph.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProviderAiGraphResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/ProviderAiGraphSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/providers/current/ai/graph",
          "implementationPath": "/api/platform/v1/providers/current/ai/graph",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/providers/current/ai/actions": {
      "post": {
        "tags": [
          "Provider AI"
        ],
        "summary": "Prepare, confirm, or reject sandbox provider AI actions",
        "description": "Prepares, confirms, or rejects a sandbox provider AI action through the REST API. Missing confirmation returns a safe continuation without writing. Confirmed and rejected actions require an action-specific provider scope, active provider grant, explicit disposition flag, and Idempotency-Key. Rejection records the no-side-effect decision; this route never calls external scheduler, CRM, accounting, DNS, payout, marketplace, or payment systems directly.",
        "operationId": "createCurrentProviderAiAction",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ProviderAiActionRequest"
              },
              "examples": {
                "prepareReply": {
                  "value": {
                    "action": "prepare_reply",
                    "target_id": "lead_sandbox_clean_001"
                  }
                },
                "confirmReply": {
                  "value": {
                    "action": "confirm_reply",
                    "target_id": "lead_sandbox_clean_001",
                    "message": "Thanks, we can help.",
                    "confirm_reply": true
                  }
                },
                "rejectReply": {
                  "value": {
                    "action": "confirm_reply",
                    "target_id": "lead_sandbox_clean_001",
                    "reject_action": true,
                    "rejection_reason": "Needs owner review before sending"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Prepared, confirmed, or rejected sandbox provider AI action.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProviderAiActionResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/ProviderAiActionSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/providers/current/ai/actions",
          "implementationPath": "/api/platform/v1/providers/current/ai/actions",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/providers/current/ai/sync-health": {
      "get": {
        "tags": [
          "Provider AI"
        ],
        "summary": "Inspect current sandbox provider external sync health",
        "description": "Returns sandbox external scheduler and CRM sync-health policy. Stale, conflicted, revoked, or uncertified external availability is exposed as request/handoff and never as a confirmed customer appointment.",
        "operationId": "getCurrentProviderAiSyncHealth",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Current sandbox provider external sync health.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProviderExternalSyncHealthResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/ProviderExternalSyncHealthSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/providers/current/ai/sync-health",
          "implementationPath": "/api/platform/v1/providers/current/ai/sync-health",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/providers/current/integrations/{appId}/install-gate": {
      "get": {
        "tags": [
          "Provider integrations"
        ],
        "summary": "Inspect provider integration install-consent gate",
        "description": "Returns a read-only install-consent gate for a connected app when the authenticated automation client has `provider_integrations.manage`. External URL: `/v1/providers/current/integrations/{appId}/install-gate`. Current Next.js implementation path: `/api/platform/v1/providers/current/integrations/[appId]/install-gate`. This read-only route does not require `Idempotency-Key`; it exposes consent copy, required scopes, data categories, prerequisite evidence, and a fail-closed gate decision only. It never returns raw credentials, OAuth tokens, webhook secrets, raw sync payloads, customer PII, direct external-system calls, install mutations, pause/resume mutations, or revocation mutations.",
        "operationId": "getCurrentProviderIntegrationInstallGate",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 160
            },
            "description": "Connected-app registry ID such as `platform_app_provider_ai_workspace_graph`."
          },
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Provider integration install or revocation gate.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProviderIntegrationGateResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/ProviderIntegrationInstallGateSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/providers/current/integrations/{appId}/install-gate",
          "implementationPath": "/api/platform/v1/providers/current/integrations/[appId]/install-gate",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/providers/current/integrations/{appId}/revocation-gate": {
      "get": {
        "tags": [
          "Provider integrations"
        ],
        "summary": "Inspect provider integration revocation gate",
        "description": "Returns a read-only revocation gate for a connected app when the authenticated automation client has `provider_integrations.manage`. External URL: `/v1/providers/current/integrations/{appId}/revocation-gate`. Current Next.js implementation path: `/api/platform/v1/providers/current/integrations/[appId]/revocation-gate`. This read-only route does not require `Idempotency-Key`; it exposes terminal-state posture, fan-out targets, audit requirements, prerequisite evidence, and a fail-closed gate decision only. It never returns raw credentials, OAuth tokens, webhook secrets, raw sync payloads, customer PII, direct external-system calls, install mutations, pause/resume mutations, or revocation mutations.",
        "operationId": "getCurrentProviderIntegrationRevocationGate",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "name": "appId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 160
            },
            "description": "Connected-app registry ID such as `platform_app_provider_ai_workspace_graph`."
          },
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Provider integration install or revocation gate.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProviderIntegrationGateResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/ProviderIntegrationRevocationGateSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/providers/current/integrations/{appId}/revocation-gate",
          "implementationPath": "/api/platform/v1/providers/current/integrations/[appId]/revocation-gate",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/providers/current/integrations": {
      "get": {
        "tags": [
          "Provider integrations"
        ],
        "summary": "List current provider integration directory metadata",
        "description": "Returns read-only connected-app directory metadata for current provider workspaces when the authenticated automation client has `provider_workspace.read`. External URL: `/v1/providers/current/integrations`. Current Next.js implementation path: `/api/platform/v1/providers/current/integrations`. This read-only route does not require `Idempotency-Key`; it exposes contract metadata, redacted credential posture, sync health, support owner, source-mode, certification, and deferred action availability only. It never returns raw credentials, OAuth tokens, webhook secrets, raw sync payloads, customer PII, direct external-system calls, install mutations, pause/resume mutations, or revocation mutations.",
        "operationId": "listCurrentProviderIntegrations",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Current provider integration directory metadata.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ProviderIntegrationsDirectoryResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/ProviderIntegrationsDirectorySandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/providers/current/integrations",
          "implementationPath": "/api/platform/v1/providers/current/integrations",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/renovations/current/projects": {
      "get": {
        "tags": [
          "Renovations"
        ],
        "summary": "List sandbox Renovation projects",
        "description": "Returns org-scoped sandbox Renovation project summaries when the authenticated automation client has `renovations.projects.read` and the Renovation project route gate is enabled. External URL: `/v1/renovations/current/projects`. Current Next.js implementation path: `/api/platform/v1/renovations/current/projects`. This read-only route exposes service-role-only project state through a redacted response: client and site hashes, supplier pricing, margin, payment state, raw documents, and live action controls are never returned. Live reads remain unavailable until restricted workspace and live gates pass.",
        "operationId": "listRenovationProjects",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            },
            "description": "Maximum number of sandbox Renovation projects to return."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PlatformRenovationProjectStatus"
            },
            "description": "Filter by Renovation project status."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox Renovation project response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformRenovationProjectListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformRenovationProjectListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/renovations/current/projects",
          "implementationPath": "/api/platform/v1/renovations/current/projects",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      },
      "post": {
        "tags": [
          "Renovations"
        ],
        "summary": "Create sandbox Renovation project",
        "description": "Creates a service-role-only sandbox Renovation project when the authenticated automation client has `renovations.projects.write`, the Renovation project route gate is enabled, and an `Idempotency-Key` is provided. External URL: `/v1/renovations/current/projects`. Current Next.js implementation path: `/api/platform/v1/renovations/current/projects`. The request accepts partner-generated client and site hashes only; raw client PII, raw site address, supplier pricing, payment state, margin, documents, staff invite, and live action controls stay outside the REST response. Live writes remain unavailable until restricted workspace and live gates pass.",
        "operationId": "createRenovationProject",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePlatformRenovationProjectRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Sandbox Renovation project response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformRenovationProjectCreateResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformRenovationProjectCreatedSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/renovations/current/projects",
          "implementationPath": "/api/platform/v1/renovations/current/projects",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/renovations/current/projects/{projectId}/actions": {
      "post": {
        "tags": [
          "Renovations"
        ],
        "summary": "Prepare a sandbox Renovation project action for review",
        "description": "Prepares either a variation-order draft or warranty-request checklist when the authenticated automation client has `renovations.projects.write`, the Renovation project route gate is enabled, `confirm_prepare` is true, and an `Idempotency-Key` is provided. External URL: `/v1/renovations/current/projects/{projectId}/actions`. Current Next.js implementation path: `/api/platform/v1/renovations/current/projects/[projectId]/actions`. The response requires project-manager review and cannot confirm or execute the action. It does not mutate projects or milestones, create variation orders, submit warranty requests, notify clients, change payment state, make external calls, or expose cost amounts, supplier pricing, client references, or site references. Live preparation remains unavailable.",
        "operationId": "prepareRenovationProjectAction",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          },
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 160
            },
            "description": "Sandbox Renovation project identifier returned by project list."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PreparePlatformRenovationProjectActionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Sandbox Renovation project response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformRenovationProjectActionResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformRenovationProjectActionPreparedSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/renovations/current/projects/{projectId}/actions",
          "implementationPath": "/api/platform/v1/renovations/current/projects/[projectId]/actions",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/renovations/current/projects/{projectId}/milestones": {
      "post": {
        "tags": [
          "Renovations"
        ],
        "summary": "Create sandbox Renovation milestone",
        "description": "Creates a service-role-only sandbox Renovation project milestone when the authenticated automation client has `renovations.projects.write`, the Renovation project route gate is enabled, and an `Idempotency-Key` is provided. External URL: `/v1/renovations/current/projects/{projectId}/milestones`. Current Next.js implementation path: `/api/platform/v1/renovations/current/projects/[projectId]/milestones`. The response exposes redacted milestone status only: cost impact, supplier pricing, payment state, raw documents, client PII, and live action controls remain unavailable.",
        "operationId": "createRenovationMilestone",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          },
          {
            "name": "projectId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 160
            },
            "description": "Sandbox Renovation project identifier returned by project create/list."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePlatformRenovationMilestoneRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Sandbox Renovation project response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformRenovationMilestoneMutationResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformRenovationMilestoneCreatedSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/renovations/current/projects/{projectId}/milestones",
          "implementationPath": "/api/platform/v1/renovations/current/projects/[projectId]/milestones",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/renovations/current/milestones/{milestoneId}/progress": {
      "post": {
        "tags": [
          "Renovations"
        ],
        "summary": "Submit sandbox Renovation milestone progress",
        "description": "Submits a service-role-only sandbox Renovation milestone progress update when the authenticated automation client has `renovations.projects.write`, the Renovation project route gate is enabled, and an `Idempotency-Key` is provided. External URL: `/v1/renovations/current/milestones/{milestoneId}/progress`. Current Next.js implementation path: `/api/platform/v1/renovations/current/milestones/[milestoneId]/progress`. The route uses optimistic `expected_version` checks and returns redacted milestone progress only; supplier pricing, cost impact, payment state, raw documents, client PII, and live actions remain unavailable.",
        "operationId": "submitRenovationProgress",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          },
          {
            "name": "milestoneId",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 160
            },
            "description": "Sandbox Renovation milestone identifier returned by milestone create."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SubmitPlatformRenovationProgressRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Sandbox Renovation project response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformRenovationMilestoneMutationResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformRenovationProgressSubmittedSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/renovations/current/milestones/{milestoneId}/progress",
          "implementationPath": "/api/platform/v1/renovations/current/milestones/[milestoneId]/progress",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/sandbox/fixtures": {
      "get": {
        "tags": [
          "Sandbox"
        ],
        "summary": "List deterministic sandbox fixture domains",
        "description": "Returns the deterministic sandbox fixture catalog for an automation client with `sandbox.reset`. External URL: `/v1/sandbox/fixtures`. Current Next.js implementation path: `/api/platform/v1/sandbox/fixtures`. This read-only route does not require `Idempotency-Key`, returns only public-safe/reset metadata, and never exposes raw customer PII, raw credentials, provider payloads, or service-role identifiers.",
        "operationId": "listSandboxFixtures",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Deterministic sandbox fixture catalog.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SandboxFixtureCatalogResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/SandboxFixtureCatalogSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/sandbox/fixtures",
          "implementationPath": "/api/platform/v1/sandbox/fixtures",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/sandbox/reset": {
      "post": {
        "tags": [
          "Sandbox"
        ],
        "summary": "Reset stateless deterministic sandbox fixtures",
        "description": "Accepts a sandbox fixture reset request for an automation client with `sandbox.reset`. External URL: `/v1/sandbox/reset`. Current Next.js implementation path: `/api/platform/v1/sandbox/reset`. This mutating route requires `Idempotency-Key`; because the current fixtures are stateless deterministic builders, reset records standard request/idempotency evidence and reselects the canonical baseline without deleting or inserting database rows, calling providers, sending webhooks, or touching live data.",
        "operationId": "resetSandboxFixtures",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": false,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SandboxResetRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Sandbox fixture reset evidence.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SandboxResetResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/SandboxResetSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/sandbox/reset",
          "implementationPath": "/api/platform/v1/sandbox/reset",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/sandbox/service-provider-payouts/simulate": {
      "post": {
        "tags": [
          "Service provider payments"
        ],
        "summary": "Simulate sandbox service-provider payout states",
        "description": "Returns deterministic sandbox-only payout lifecycle fixtures when the authenticated automation client has `services.payouts.manage`. External URL: `/v1/sandbox/service-provider-payouts/simulate`. Current Next.js implementation path: `/api/platform/v1/sandbox/service-provider-payouts/simulate`. This mutating route requires `Idempotency-Key`; SDK, CLI, and MCP sandbox simulations may call this route after explicit confirmation, while the route records only standard platform request/idempotency evidence and never creates real Stripe charges, transfers, payouts, bank movements, Xero journals, payout jobs, settlement rows, or fixture mutations.",
        "operationId": "simulateSandboxServiceProviderPayout",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SandboxServiceProviderPayoutSimulationRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Sandbox payout simulation result.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/SandboxServiceProviderPayoutSimulationResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/SandboxServiceProviderPayoutSimulationSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/sandbox/service-provider-payouts/simulate",
          "implementationPath": "/api/platform/v1/sandbox/service-provider-payouts/simulate",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/services/bookings/{id}/payment-status": {
      "get": {
        "tags": [
          "Service provider payments"
        ],
        "summary": "Inspect one sandbox service booking payment status",
        "description": "Returns one sandbox-only, redacted service booking payment-status record when the authenticated automation client has `services.bookings.read`. External URL: `/v1/services/bookings/{id}/payment-status`. Current Next.js implementation path: `/api/platform/v1/services/bookings/[id]/payment-status`. This read-only route does not require `Idempotency-Key`; SDK, CLI, and MCP payment-status inspection may call this sandbox route, while live payment identity, payment provider metadata, raw Stripe data, card details, customer PII, internal fraud signals, and payout execution remain deferred.",
        "operationId": "getServiceBookingPaymentStatus",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^svc_booking_[a-z0-9_]{1,96}$"
            },
            "description": "Sandbox service booking identifier."
          },
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "One sandbox service booking payment status.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceBookingPaymentStatusResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/ServiceBookingPaymentStatusSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/services/bookings/{id}/payment-status",
          "implementationPath": "/api/platform/v1/services/bookings/[id]/payment-status",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/service-provider-payouts": {
      "get": {
        "tags": [
          "Service provider payments"
        ],
        "summary": "List current sandbox service-provider payout statements",
        "description": "Returns sandbox-only, redacted payout statement summaries when the authenticated automation client has `services.payouts.read`. External URL: `/v1/service-provider-payouts`. Current Next.js implementation path: `/api/platform/v1/service-provider-payouts`. This read-only route does not require `Idempotency-Key`; SDK, CLI, and MCP payout statement inspection may call this sandbox route, while live payout execution, payout approval, retry, settlement reconciliation, raw Stripe data, and bank-account data remain deferred.",
        "operationId": "listServiceProviderPayouts",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Current sandbox service-provider payout statement list.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceProviderPayoutsResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/ServiceProviderPayoutsSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/service-provider-payouts",
          "implementationPath": "/api/platform/v1/service-provider-payouts",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/service-provider-payouts/{id}": {
      "get": {
        "tags": [
          "Service provider payments"
        ],
        "summary": "Inspect one sandbox service-provider payout statement",
        "description": "Returns one sandbox-only, redacted payout statement with public-safe line items when the authenticated automation client has `services.payouts.read`. External URL: `/v1/service-provider-payouts/{id}`. Current Next.js implementation path: `/api/platform/v1/service-provider-payouts/[id]`. This read-only route does not require `Idempotency-Key`; SDK, CLI, and MCP payout detail inspection may call this sandbox route, while live payout execution, payout approval, retry, settlement reconciliation, raw Stripe data, bank-account data, and service-role identifiers remain deferred.",
        "operationId": "getServiceProviderPayout",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^payout_[a-z0-9_]{1,96}$"
            },
            "description": "Sandbox payout statement identifier."
          },
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "One sandbox service-provider payout statement.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ServiceProviderPayoutDetailResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/ServiceProviderPayoutDetailSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/service-provider-payouts/{id}",
          "implementationPath": "/api/platform/v1/service-provider-payouts/[id]",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/service-providers/current/earnings": {
      "get": {
        "tags": [
          "Service provider payments"
        ],
        "summary": "Inspect current sandbox service-provider earnings",
        "description": "Returns a sandbox-only, ledger-backed provider earnings summary when the authenticated automation client has `services.payments.read`. External URL: `/v1/service-providers/current/earnings`. Current Next.js implementation path: `/api/platform/v1/service-providers/current/earnings`. This read-only route does not require `Idempotency-Key`; SDK, CLI, and MCP provider earnings inspection may call this sandbox route, while live provider payment identity, payout execution, raw Stripe data, card details, bank-account data, and settlement mutations remain deferred.",
        "operationId": "getCurrentServiceProviderEarnings",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Current sandbox service-provider earnings summary.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CurrentServiceProviderEarningsResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/CurrentServiceProviderEarningsSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/service-providers/current/earnings",
          "implementationPath": "/api/platform/v1/service-providers/current/earnings",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/sites": {
      "get": {
        "tags": [
          "Sites"
        ],
        "summary": "List sandbox partner sites",
        "description": "Returns deterministic sandbox partner-site summaries when the authenticated automation client has `sites.read`. External URL: `/v1/sites`. Current Next.js implementation path: `/api/platform/v1/sites`. This read-only route does not require `Idempotency-Key`; it never renders public pages, publishes sites, writes CRM records, performs scheduling side effects, configures custom domains, or exposes partner secrets. Live site reads remain unavailable until ownership, publication, and route-promotion gates pass.",
        "operationId": "listSites",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            },
            "description": "Maximum number of sandbox site summaries to return."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            },
            "description": "Opaque pagination cursor from a previous response."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PlatformSiteStatus"
            },
            "description": "Filter by sandbox site publication status."
          },
          {
            "name": "template_id",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PlatformSiteTemplateId"
            },
            "description": "Filter by approved sandbox site template."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox partner-site summaries.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformSiteListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformSiteListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/sites",
          "implementationPath": "/api/platform/v1/sites",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/sites/{id}": {
      "get": {
        "tags": [
          "Sites"
        ],
        "summary": "Get sandbox partner site detail",
        "description": "Returns one deterministic sandbox partner-site detail record when the authenticated automation client has `sites.read`. External URL: `/v1/sites/{id}`. Current Next.js implementation path: `/api/platform/v1/sites/[id]`. This read-only route does not require `Idempotency-Key`; it never renders public pages, publishes sites, writes CRM records, performs scheduling side effects, configures custom domains, calls providers, or exposes partner secrets. Live site detail reads remain unavailable until ownership, publication, and route-promotion gates pass.",
        "operationId": "getSite",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Sandbox partner-site ID returned by `GET /v1/sites`."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox partner-site detail.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformSiteDetailResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformSiteDetailSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/sites/{id}",
          "implementationPath": "/api/platform/v1/sites/[id]",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/sites/{id}/pages": {
      "get": {
        "tags": [
          "Sites"
        ],
        "summary": "List sandbox partner site pages",
        "description": "Returns deterministic sandbox partner-site page metadata when the authenticated automation client has `sites.read`. External URL: `/v1/sites/{id}/pages`. Current Next.js implementation path: `/api/platform/v1/sites/[id]/pages`. This read-only route does not require `Idempotency-Key`; it returns structured page metadata only and never renders public pages, exposes raw HTML, signs URLs, publishes sites, writes CRM records, performs scheduling side effects, configures custom domains, calls providers, or exposes partner secrets. Live site page reads remain unavailable until ownership, publication, render, and route-promotion gates pass.",
        "operationId": "listSitePages",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Sandbox partner-site ID returned by `GET /v1/sites`."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            },
            "description": "Maximum number of sandbox site pages to return."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            },
            "description": "Opaque pagination cursor from a previous response."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox partner-site pages.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformSitePagesResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformSitePagesSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/sites/{id}/pages",
          "implementationPath": "/api/platform/v1/sites/[id]/pages",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/sites/{id}/domains": {
      "get": {
        "tags": [
          "Sites"
        ],
        "summary": "List sandbox partner site domain status",
        "description": "Returns deterministic sandbox partner-site custom-domain deferral evidence when the authenticated automation client has `sites.read`. External URL: `/v1/sites/{id}/domains`. Current Next.js implementation path: `/api/platform/v1/sites/[id]/domains`. This read-only route does not require `Idempotency-Key`; it returns requested-domain status and OpenTofu/certificate/rollback guardrails only, never configures DNS, requests certificates, calls providers, exposes DNS validation tokens, publishes sites, writes CRM records, performs scheduling side effects, or exposes partner secrets. Live custom-domain reads remain unavailable until ownership, DNS, certificate, rollback, and route-promotion gates pass.",
        "operationId": "listSiteDomains",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Sandbox partner-site ID returned by `GET /v1/sites`."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox partner-site custom-domain status.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformSiteDomainsResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformSiteDomainsSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/sites/{id}/domains",
          "implementationPath": "/api/platform/v1/sites/[id]/domains",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/sites/{id}/forms": {
      "get": {
        "tags": [
          "Sites"
        ],
        "summary": "List sandbox partner site forms",
        "description": "Returns deterministic sandbox partner-site form metadata when the authenticated automation client has `forms.read`. External URL: `/v1/sites/{id}/forms`. Current Next.js implementation path: `/api/platform/v1/sites/[id]/forms`. This read-only route does not require `Idempotency-Key`; it returns form metadata only and never returns submissions, exposes recipient destinations, renders public forms, publishes sites, writes CRM records, performs scheduling side effects, configures custom domains, calls providers, or exposes partner secrets. Live site form reads remain unavailable until ownership, consent, delivery, and route-promotion gates pass.",
        "operationId": "listSiteForms",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Sandbox partner-site ID returned by `GET /v1/sites`."
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            },
            "description": "Maximum number of sandbox site forms to return."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 512
            },
            "description": "Opaque pagination cursor from a previous response."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox partner-site forms.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformSiteFormsResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/PlatformSiteFormsSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/sites/{id}/forms",
          "implementationPath": "/api/platform/v1/sites/[id]/forms",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/conveyancing/matters": {
      "get": {
        "tags": [
          "Conveyancing"
        ],
        "summary": "List sandbox conveyancing matters",
        "description": "Returns deterministic sandbox transaction/conveyancing matter summaries when the authenticated automation client has `conveyancing.matters.read`. External URL: `/v1/conveyancing/matters`. Current Next.js implementation path: `/api/platform/v1/conveyancing/matters`. This read-only route does not require `Idempotency-Key`; SDK, CLI, and MCP read adapters may inspect the sandbox DTOs later, while live matter ownership, matter writes, legal lodgement, fund release, document submission, and e-stamping remain deferred. Conveyancing pilot posture remains marketplace orchestration only, legal advice and client-money or trust-account handling remain deferred, and partner-status publication remains private-first.",
        "operationId": "listConveyancingMatters",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox transaction/conveyancing response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionMatterListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/TransactionMatterListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/conveyancing/matters",
          "implementationPath": "/api/platform/v1/conveyancing/matters",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/conveyancing/matters/{id}": {
      "get": {
        "tags": [
          "Conveyancing"
        ],
        "summary": "Inspect a sandbox conveyancing matter",
        "description": "Returns a public-safe sandbox transaction/conveyancing matter detail when the authenticated automation client has `conveyancing.matters.read`. External URL: `/v1/conveyancing/matters/{id}`. Current Next.js implementation path: `/api/platform/v1/conveyancing/matters/[id]`. The response includes redacted document manifests and stamp-duty coordination metadata only; raw documents, private legal notes, permanent storage links, legal advice, and live matter mutation remain unavailable. Conveyancing pilot posture remains marketplace orchestration only, legal advice and client-money or trust-account handling remain deferred, and partner-status publication remains private-first.",
        "operationId": "getConveyancingMatter",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Sandbox transaction/conveyancing matter fixture ID."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox transaction/conveyancing response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionMatterDetailResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/TransactionMatterDetailSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/conveyancing/matters/{id}",
          "implementationPath": "/api/platform/v1/conveyancing/matters/[id]",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/conveyancing/matters/{id}/documents": {
      "get": {
        "tags": [
          "Conveyancing"
        ],
        "summary": "List redacted sandbox matter documents",
        "description": "Returns redacted sandbox document manifest metadata when the authenticated automation client has `transactions.documents.read`. External URL: `/v1/conveyancing/matters/{id}/documents`. Current Next.js implementation path: `/api/platform/v1/conveyancing/matters/[id]/documents`. This read-only route never returns raw document contents, hidden storage paths, permanent links, private legal notes, privileged communications, or production signed URLs. Conveyancing pilot posture remains marketplace orchestration only, legal advice and client-money or trust-account handling remain deferred, and partner-status publication remains private-first.",
        "operationId": "listConveyancingMatterDocuments",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Sandbox transaction/conveyancing matter fixture ID."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox transaction/conveyancing response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionDocumentManifestResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/TransactionDocumentManifestSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/conveyancing/matters/{id}/documents",
          "implementationPath": "/api/platform/v1/conveyancing/matters/[id]/documents",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/conveyancing/matters/{id}/stamp-duty": {
      "get": {
        "tags": [
          "Conveyancing"
        ],
        "summary": "Inspect sandbox stamp-duty coordination state",
        "description": "Returns sandbox stamp-duty coordination metadata when the authenticated automation client has `stamp_duty.status.read`. External URL: `/v1/conveyancing/matters/{id}/stamp-duty`. Current Next.js implementation path: `/api/platform/v1/conveyancing/matters/[id]/stamp-duty`. This read-only route does not submit e-stamping, provide legal or tax advice, request legal confirmation, or present platform estimates as final; live stamp-duty submission remains deferred. Conveyancing pilot posture remains marketplace orchestration only, legal advice and client-money or trust-account handling remain deferred, and partner-status publication remains private-first.",
        "operationId": "getConveyancingMatterStampDuty",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Sandbox transaction/conveyancing matter fixture ID."
          }
        ],
        "responses": {
          "200": {
            "description": "Sandbox transaction/conveyancing response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionStampDutyResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/TransactionStampDutySandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/conveyancing/matters/{id}/stamp-duty",
          "implementationPath": "/api/platform/v1/conveyancing/matters/[id]/stamp-duty",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/conveyancing/matters/{id}/actions": {
      "post": {
        "tags": [
          "Conveyancing"
        ],
        "summary": "Prepare a sandbox conveyancing matter review action",
        "description": "Prepares a deterministic sandbox matter-update draft or document-request checklist when the authenticated automation client has `conveyancing.matters.write`, sends `confirm_prepare: true`, and provides an `Idempotency-Key`. External URL: `/v1/conveyancing/matters/{id}/actions`. Current Next.js implementation path: `/api/platform/v1/conveyancing/matters/[id]/actions`. The route accepts only `prepare_matter_update_draft` and `prepare_document_request_checklist`, requires an active sandbox matter and responsible-lawyer review, and exposes no API confirmation or execution route. It never mutates the matter, submits documents or e-stamping, releases funds, handles client money, returns legal or tax action, exposes sensitive fields, or calls an external system. Unsupported writes fail strict request validation. Conveyancing pilot posture remains marketplace orchestration only, legal advice and client-money or trust-account handling remain deferred, and partner-status publication remains private-first.",
        "operationId": "prepareConveyancingMatterAction",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 128
            },
            "description": "Sandbox transaction/conveyancing matter fixture ID."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/TransactionConveyancingPrepareRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Sandbox transaction/conveyancing response.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/TransactionConveyancingPrepareResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/TransactionConveyancingPrepareSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/conveyancing/matters/{id}/actions",
          "implementationPath": "/api/platform/v1/conveyancing/matters/[id]/actions",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/providers/current/usage-summary": {
      "get": {
        "tags": [
          "Usage summary"
        ],
        "summary": "List read-only current provider usage summaries",
        "description": "Returns customer-visible usage summaries for all platform launch verticals when the authenticated automation client has `platform.billing_owner_visibility.read`. External URL: `/v1/providers/current/usage-summary`. Current Next.js implementation path: `/api/platform/v1/providers/current/usage-summary`. This read-only route does not require `Idempotency-Key`; it exposes plan state, usage-summary test IDs, approved rollup posture, and observe-only billing side-effect blocking only. It never reads usage event tables or partner-facing billing tables, returns raw usage payloads or raw payment payloads, sends invoices, collects payments, enforces quota, suspends credentials, or calls external finance providers.",
        "operationId": "listCurrentProviderUsageSummary",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Read-only customer-visible usage summaries.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/UsageSummaryResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/UsageSummarySandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/providers/current/usage-summary",
          "implementationPath": "/api/platform/v1/providers/current/usage-summary",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/listings": {
      "get": {
        "tags": [
          "Listings"
        ],
        "summary": "List public-safe listings",
        "description": "Returns public-safe listings. Sandbox credentials receive deterministic fixture listings; live credentials read active public-safe Homejourney and MLS-backed listings through the platform service layer. External URL: `/v1/listings`. Current Next.js implementation path: `/api/platform/v1/listings`. This read-only route does not require `Idempotency-Key` and never exposes source-agent contact metadata, private evidence URIs, or partner routing details.",
        "operationId": "listListings",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            },
            "description": "Maximum number of listings to return."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 512
            },
            "description": "Opaque pagination cursor from a previous response."
          },
          {
            "name": "q",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 120
            },
            "description": "Public-safe text search across listing title, description, development, and district."
          },
          {
            "name": "listing_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "For Sale",
                "For Rent"
              ]
            },
            "description": "Filter by sale or rent listing type."
          },
          {
            "name": "property_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 80
            },
            "description": "Filter by public property type label."
          },
          {
            "name": "district",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "minLength": 1,
              "maxLength": 20
            },
            "description": "Filter by Singapore district label."
          },
          {
            "name": "min_price",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "exclusiveMinimum": 0
            },
            "description": "Minimum listing price."
          },
          {
            "name": "max_price",
            "in": "query",
            "required": false,
            "schema": {
              "type": "number",
              "exclusiveMinimum": 0
            },
            "description": "Maximum listing price."
          },
          {
            "name": "bedrooms_min",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0
            },
            "description": "Minimum bedroom count."
          },
          {
            "name": "bedrooms_max",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 0,
              "maximum": 20
            },
            "description": "Maximum bedroom count."
          },
          {
            "name": "subletting_type",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "whole_unit",
                "master_room",
                "common_room",
                "studio",
                "bed"
              ]
            },
            "description": "Filter rental listings by public subletting type."
          },
          {
            "name": "available_from",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "date"
            },
            "description": "Return listings available on or before this date."
          },
          {
            "name": "lease_duration_months",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 60
            },
            "description": "Maximum requested lease duration in months."
          },
          {
            "name": "sort",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "newest",
                "price_asc",
                "price_desc",
                "relevance"
              ]
            },
            "description": "Sort listings by newest/default recency or price."
          }
        ],
        "responses": {
          "200": {
            "description": "Public-safe listings.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListingListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/ListingListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/listings",
          "implementationPath": "/api/platform/v1/listings",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/listings/{id}": {
      "get": {
        "tags": [
          "Listings"
        ],
        "summary": "Inspect a public-safe listing",
        "description": "Returns a public-safe listing detail. Sandbox credentials receive deterministic fixture listings; live credentials read active public-safe Homejourney and MLS-backed listings through the platform service layer. External URL: `/v1/listings/{id}`. Current Next.js implementation path: `/api/platform/v1/listings/[id]`. This read-only route does not require `Idempotency-Key` and never exposes source-agent contact metadata, private evidence URIs, or partner routing details.",
        "operationId": "getListing",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string"
            },
            "description": "Listing ID."
          }
        ],
        "responses": {
          "200": {
            "description": "Public-safe listing detail.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListingDetailResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/ListingDetailSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/listings/{id}",
          "implementationPath": "/api/platform/v1/listings/[id]",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/viewing-requests": {
      "post": {
        "tags": [
          "Viewings"
        ],
        "summary": "Create a viewing request",
        "description": "Creates a viewing request. Sandbox credentials use deterministic fixtures; live credentials create platform-attributed, side-effect-suppressed rows for public-safe platform listings. External URL: `/v1/viewing-requests`. Current Next.js implementation path: `/api/platform/v1/viewing-requests`. This mutating route requires `Idempotency-Key` and never sends SMS, WhatsApp, email, calendar writes, agent dispatch, or production webhooks in slice 1.",
        "operationId": "createViewingRequest",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreateViewingRequestRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Viewing request accepted.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ViewingRequestResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/CreateViewingRequestSandbox"
                  },
                  "liveSuppressed": {
                    "$ref": "#/components/examples/CreateViewingRequestLiveSuppressed"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/viewing-requests",
          "implementationPath": "/api/platform/v1/viewing-requests",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only"
        }
      }
    },
    "/viewing-requests/{id}": {
      "get": {
        "tags": [
          "Viewings"
        ],
        "summary": "Inspect a viewing request",
        "description": "Returns the public-safe status for a sandbox fixture or live platform-owned viewing request. External URL: `/v1/viewing-requests/{id}`. Current Next.js implementation path: `/api/platform/v1/viewing-requests/[id]`. This read-only route does not require `Idempotency-Key` and never exposes contact details or partner routing metadata.",
        "operationId": "getViewingRequest",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Viewing request ID."
          }
        ],
        "responses": {
          "200": {
            "description": "Viewing request status.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ViewingRequestStatusResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/ViewingRequestStatusSandbox"
                  },
                  "liveSuppressed": {
                    "$ref": "#/components/examples/ViewingRequestStatusLiveSuppressed"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/viewing-requests/{id}",
          "implementationPath": "/api/platform/v1/viewing-requests/[id]",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/webhooks/endpoints": {
      "get": {
        "tags": [
          "Webhooks"
        ],
        "summary": "List webhook endpoints",
        "description": "Returns webhook endpoint registration metadata for the authenticated integration client. External URL: `/v1/webhooks/endpoints`. Current Next.js implementation path: `/api/platform/v1/webhooks/endpoints`. This read-only route does not require `Idempotency-Key` and never returns raw signing secrets or signing-secret digests.",
        "operationId": "listWebhookEndpoints",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            },
            "description": "Maximum number of webhook endpoints to return."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 512
            },
            "description": "Opaque pagination cursor from a previous response."
          }
        ],
        "responses": {
          "200": {
            "description": "Webhook endpoint registrations.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformWebhookEndpointListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/WebhookEndpointListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/webhooks/endpoints",
          "implementationPath": "/api/platform/v1/webhooks/endpoints",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      },
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Create webhook endpoint",
        "description": "Creates one webhook endpoint registration for the authenticated integration client. External URL: `/v1/webhooks/endpoints`. Current Next.js implementation path: `/api/platform/v1/webhooks/endpoints`. This mutating route requires `Idempotency-Key`, SSRF-validates and normalizes the endpoint URL before storage, returns the raw `whsec_...` signing secret only in the first successful create response, persists only a redacted idempotency replay body with `signing_secret: null`, and does not perform direct delivery or AWS dispatch work.",
        "operationId": "createWebhookEndpoint",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePlatformWebhookEndpointRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Webhook endpoint registered. The signing secret is shown once; idempotency replays return a redacted secret field.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/CreatePlatformWebhookEndpointResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/WebhookEndpointCreatedSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/webhooks/endpoints",
          "implementationPath": "/api/platform/v1/webhooks/endpoints",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only"
        }
      }
    },
    "/webhooks/endpoints/{id}": {
      "get": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Get webhook endpoint",
        "description": "Returns one webhook endpoint registration for the authenticated integration client. External URL: `/v1/webhooks/endpoints/{id}`. Current Next.js implementation path: `/api/platform/v1/webhooks/endpoints/[id]`. This read-only route does not require `Idempotency-Key` and never returns raw signing secrets or signing-secret digests.",
        "operationId": "getWebhookEndpoint",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Webhook endpoint ID issued by Homejourney."
          }
        ],
        "responses": {
          "200": {
            "description": "Webhook endpoint registration.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformWebhookEndpointResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/WebhookEndpointDetailSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/webhooks/endpoints/{id}",
          "implementationPath": "/api/platform/v1/webhooks/endpoints/[id]",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      },
      "patch": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Update webhook endpoint URL and metadata",
        "description": "Updates the URL and safe metadata for one webhook endpoint registration owned by the authenticated integration client. External URL: `/v1/webhooks/endpoints/{id}`. Current Next.js implementation path: `/api/platform/v1/webhooks/endpoints/[id]`. This mutating route requires `Idempotency-Key`, can update endpoint URL, description, subscribed event names, and active/disabled status, SSRF-validates URL changes before storage, does not issue signing secrets, and does not perform direct delivery or AWS dispatch work.",
        "operationId": "updateWebhookEndpoint",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Webhook endpoint ID issued by Homejourney."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePlatformWebhookEndpointRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Webhook endpoint metadata updated.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformWebhookEndpointResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/WebhookEndpointUpdatedSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/webhooks/endpoints/{id}",
          "implementationPath": "/api/platform/v1/webhooks/endpoints/[id]",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only"
        }
      },
      "delete": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Revoke webhook endpoint",
        "description": "Revokes one webhook endpoint registration for the authenticated integration client. External URL: `/v1/webhooks/endpoints/{id}`. Current Next.js implementation path: `/api/platform/v1/webhooks/endpoints/[id]`. This mutating route requires `Idempotency-Key`, hides the endpoint from future reads, never returns raw signing secrets or signing-secret digests, and does not perform direct delivery or enqueue AWS dispatch work.",
        "operationId": "revokeWebhookEndpoint",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Webhook endpoint ID issued by Homejourney."
          }
        ],
        "responses": {
          "200": {
            "description": "Webhook endpoint revoked.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformWebhookEndpointResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/WebhookEndpointRevokedSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/webhooks/endpoints/{id}",
          "implementationPath": "/api/platform/v1/webhooks/endpoints/[id]",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only"
        }
      }
    },
    "/webhooks/deliveries": {
      "get": {
        "tags": [
          "Webhooks"
        ],
        "summary": "List webhook deliveries",
        "description": "Returns redacted webhook delivery evidence and the current retry policy for the authenticated integration client. External URL: `/v1/webhooks/deliveries`. Current Next.js implementation path: `/api/platform/v1/webhooks/deliveries`. This read-only route does not require `Idempotency-Key` and never returns webhook payloads, response bodies, response headers, raw signing secrets, or signing-secret digests.",
        "operationId": "listWebhookDeliveries",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100,
              "default": 50
            },
            "description": "Maximum number of webhook deliveries to return."
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "maxLength": 512
            },
            "description": "Opaque pagination cursor from a previous response."
          },
          {
            "name": "endpoint_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Filter deliveries to one visible webhook endpoint."
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "enum": [
                "pending",
                "success",
                "failed",
                "abandoned"
              ]
            },
            "description": "Filter deliveries by status."
          }
        ],
        "responses": {
          "200": {
            "description": "Redacted webhook delivery evidence.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformWebhookDeliveryListResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/WebhookDeliveryListSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/webhooks/deliveries",
          "implementationPath": "/api/platform/v1/webhooks/deliveries",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/webhooks/deliveries/{id}": {
      "get": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Get webhook delivery",
        "description": "Returns one redacted webhook delivery record and the current retry policy for the authenticated integration client. External URL: `/v1/webhooks/deliveries/{id}`. Current Next.js implementation path: `/api/platform/v1/webhooks/deliveries/[id]`. This read-only route does not require `Idempotency-Key` and never returns webhook payloads, response bodies, response headers, raw signing secrets, or signing-secret digests.",
        "operationId": "getWebhookDelivery",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Webhook delivery ID issued by Homejourney."
          }
        ],
        "responses": {
          "200": {
            "description": "Redacted webhook delivery evidence.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformWebhookDeliveryResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/WebhookDeliveryDetailSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/webhooks/deliveries/{id}",
          "implementationPath": "/api/platform/v1/webhooks/deliveries/[id]",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only"
        }
      }
    },
    "/webhooks/deliveries/{id}/replay": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Replay a webhook delivery",
        "description": "Enqueues a sandbox-only webhook delivery replay into the platform DB outbox after write authorization, idempotency, and current-client ownership checks, then returns the current retry policy. External URL: `/v1/webhooks/deliveries/{id}/replay`. Current Next.js implementation path: `/api/platform/v1/webhooks/deliveries/[id]/replay`. This mutating route requires `webhooks.write` and `Idempotency-Key`. It never direct-sends webhooks, pushes AWS queues, exposes payloads, response bodies, response headers, raw endpoint URLs, signing secrets, or signing-secret digests. Live deliveries and deliveries without retained outbox payloads return a sanitized `webhook_replay_not_available` problem.",
        "operationId": "replayWebhookDelivery",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          },
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Webhook delivery ID issued by Homejourney."
          }
        ],
        "responses": {
          "202": {
            "description": "Sandbox webhook delivery replay accepted into the outbox.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformWebhookDeliveryReplayResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/WebhookDeliveryReplaySandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/webhooks/deliveries/{id}/replay",
          "implementationPath": "/api/platform/v1/webhooks/deliveries/[id]/replay",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "replayStatus": "sandbox_outbox_requeue",
          "sandboxOnly": true
        }
      }
    },
    "/webhooks/test-events": {
      "post": {
        "tags": [
          "Webhooks"
        ],
        "summary": "Create a sandbox webhook test event",
        "description": "Enqueues a sandbox-only webhook test event into the platform outbox for partner integration testing. External URL: `/v1/webhooks/test-events`. Current Next.js implementation path: `/api/platform/v1/webhooks/test-events`. This mutating route requires `Idempotency-Key`, always returns `livemode: false`, and never contains production PII, real contact details, direct delivery side effects, or AWS queue dependencies.",
        "operationId": "createWebhookTestEvent",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/PlatformWebhookTestEventRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Sandbox webhook test event accepted into the outbox.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformWebhookTestEventResponse"
                },
                "examples": {
                  "sandbox": {
                    "$ref": "#/components/examples/WebhookTestEventSandbox"
                  }
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/webhooks/test-events",
          "implementationPath": "/api/platform/v1/webhooks/test-events",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "sandboxOnly": true
        }
      }
    },
    "/webhooks/subscriptions": {
      "get": {
        "tags": [
          "Managed webhooks"
        ],
        "summary": "List managed webhook subscriptions",
        "description": "Lists current-client managed webhook subscriptions with `webhooks.read`. Secret values, references, and digests are never returned. The additive family remains dark behind the managed-subscription flag and does not change legacy webhook endpoint behavior.",
        "operationId": "listManagedWebhookSubscriptions",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Managed webhook response with redacted secret and delivery evidence.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPlatformManagedWebhookSubscriptionsResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/webhooks/subscriptions",
          "implementationPath": "/api/platform/v1/webhooks/subscriptions",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "featureFlag": "enable_platform_managed_webhook_subscriptions"
        }
      },
      "post": {
        "tags": [
          "Managed webhooks"
        ],
        "summary": "Create a managed webhook subscription",
        "description": "Creates or equivalently recovers an immutable-name managed subscription with `webhooks.write`. The caller-supplied secret is write-only, never returned, and never persisted in idempotency evidence. Incompatible reuse of an organization/environment name returns conflict.",
        "operationId": "createManagedWebhookSubscription",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/CreatePlatformManagedWebhookSubscriptionRequest"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Managed webhook response with redacted secret and delivery evidence.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformManagedWebhookSubscriptionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/webhooks/subscriptions",
          "implementationPath": "/api/platform/v1/webhooks/subscriptions",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "featureFlag": "enable_platform_managed_webhook_subscriptions"
        }
      }
    },
    "/webhooks/subscriptions/{id}": {
      "get": {
        "tags": [
          "Managed webhooks"
        ],
        "summary": "Get a managed webhook subscription",
        "description": "Returns current-client managed subscription state with `webhooks.read`; secret values, references, and digests remain redacted.",
        "operationId": "getManagedWebhookSubscription",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Managed webhook subscription ID."
          },
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Managed webhook response with redacted secret and delivery evidence.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformManagedWebhookSubscriptionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/webhooks/subscriptions/{id}",
          "implementationPath": "/api/platform/v1/webhooks/subscriptions/[id]",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "featureFlag": "enable_platform_managed_webhook_subscriptions"
        }
      },
      "patch": {
        "tags": [
          "Managed webhooks"
        ],
        "summary": "Update a managed webhook subscription",
        "description": "Updates URL, event selection, description, or active/paused state with `webhooks.write`. Name, organization, client, environment, and secret identity remain immutable.",
        "operationId": "updateManagedWebhookSubscription",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Managed webhook subscription ID."
          },
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/UpdatePlatformManagedWebhookSubscriptionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Managed webhook response with redacted secret and delivery evidence.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformManagedWebhookSubscriptionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/webhooks/subscriptions/{id}",
          "implementationPath": "/api/platform/v1/webhooks/subscriptions/[id]",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "featureFlag": "enable_platform_managed_webhook_subscriptions"
        }
      },
      "delete": {
        "tags": [
          "Managed webhooks"
        ],
        "summary": "Revoke a managed webhook subscription",
        "description": "Terminally revokes a managed subscription with `webhooks.write`, immediately disables dispatch, schedules secret deletion with a seven-day recovery window, and retains audit and delivery evidence.",
        "operationId": "revokeManagedWebhookSubscription",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Managed webhook subscription ID."
          },
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RevokePlatformManagedWebhookSubscriptionRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Managed webhook response with redacted secret and delivery evidence.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformManagedWebhookRevokeResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/webhooks/subscriptions/{id}",
          "implementationPath": "/api/platform/v1/webhooks/subscriptions/[id]",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "featureFlag": "enable_platform_managed_webhook_subscriptions"
        }
      }
    },
    "/webhooks/subscriptions/{id}/rotate-secret": {
      "post": {
        "tags": [
          "Managed webhooks"
        ],
        "summary": "Rotate a managed webhook signing secret",
        "description": "Creates and atomically activates the next external secret version with `webhooks.write`. The caller-supplied secret is write-only and never returned; the prior version is scheduled for deletion after seven days.",
        "operationId": "rotateManagedWebhookSecret",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Managed webhook subscription ID."
          },
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/RotatePlatformManagedWebhookSecretRequest"
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "Managed webhook response with redacted secret and delivery evidence.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformManagedWebhookSubscriptionResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/webhooks/subscriptions/{id}/rotate-secret",
          "implementationPath": "/api/platform/v1/webhooks/subscriptions/[id]/rotate-secret",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "featureFlag": "enable_platform_managed_webhook_subscriptions"
        }
      }
    },
    "/webhooks/subscription-deliveries": {
      "get": {
        "tags": [
          "Managed webhooks"
        ],
        "summary": "List managed webhook delivery evidence",
        "description": "Lists append-only redacted managed delivery evidence with `webhooks.read`. Payloads, response bodies, headers, secret references, and signing secrets are never returned.",
        "operationId": "listManagedWebhookDeliveries",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "name": "limit",
            "in": "query",
            "required": false,
            "schema": {
              "type": "integer",
              "minimum": 1,
              "maximum": 100
            }
          },
          {
            "name": "cursor",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string"
            }
          },
          {
            "name": "subscription_id",
            "in": "query",
            "required": false,
            "schema": {
              "type": "string",
              "format": "uuid"
            }
          },
          {
            "name": "status",
            "in": "query",
            "required": false,
            "schema": {
              "$ref": "#/components/schemas/PlatformManagedWebhookDeliveryStatus"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Managed webhook response with redacted secret and delivery evidence.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ListPlatformManagedWebhookDeliveriesResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/webhooks/subscription-deliveries",
          "implementationPath": "/api/platform/v1/webhooks/subscription-deliveries",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "featureFlag": "enable_platform_managed_webhook_subscriptions"
        }
      }
    },
    "/webhooks/subscription-deliveries/{id}": {
      "get": {
        "tags": [
          "Managed webhooks"
        ],
        "summary": "Get managed webhook delivery evidence",
        "description": "Returns one current-client, append-only, redacted managed delivery record with `webhooks.read`.",
        "operationId": "getManagedWebhookDelivery",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Managed webhook delivery intent ID."
          },
          {
            "$ref": "#/components/parameters/CorrelationId"
          }
        ],
        "responses": {
          "200": {
            "description": "Managed webhook response with redacted secret and delivery evidence.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PlatformManagedWebhookDeliveryResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/webhooks/subscription-deliveries/{id}",
          "implementationPath": "/api/platform/v1/webhooks/subscription-deliveries/[id]",
          "idempotency": "not_required_read_only",
          "changePolicy": "additive_only",
          "featureFlag": "enable_platform_managed_webhook_subscriptions"
        }
      }
    },
    "/webhooks/subscription-deliveries/{id}/replay": {
      "post": {
        "tags": [
          "Managed webhooks"
        ],
        "summary": "Replay a retained managed webhook delivery",
        "description": "Creates append-only replay lineage with `webhooks.write` only after ownership, retention, active subscription and secret, dispatch flag, current event eligibility, purpose-bound consent, idempotency, and quota checks all pass. Every missing prerequisite fails closed.",
        "operationId": "replayManagedWebhookDelivery",
        "security": [
          {
            "PlatformApiKey": []
          }
        ],
        "parameters": [
          {
            "name": "id",
            "in": "path",
            "required": true,
            "schema": {
              "type": "string",
              "format": "uuid"
            },
            "description": "Managed webhook delivery intent ID."
          },
          {
            "$ref": "#/components/parameters/CorrelationId"
          },
          {
            "$ref": "#/components/parameters/IdempotencyKey"
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/ReplayPlatformManagedWebhookDeliveryRequest"
              }
            }
          }
        },
        "responses": {
          "202": {
            "description": "Managed webhook response with redacted secret and delivery evidence.",
            "headers": {
              "X-Request-Id": {
                "$ref": "#/components/headers/RequestId"
              },
              "X-RateLimit-Limit": {
                "$ref": "#/components/headers/RateLimitLimit"
              },
              "X-RateLimit-Remaining": {
                "$ref": "#/components/headers/RateLimitRemaining"
              },
              "X-RateLimit-Reset": {
                "$ref": "#/components/headers/RateLimitReset"
              },
              "Idempotency-Replayed": {
                "$ref": "#/components/headers/IdempotencyReplayed"
              }
            },
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ReplayPlatformManagedWebhookDeliveryResponse"
                }
              }
            }
          },
          "400": {
            "$ref": "#/components/responses/BadRequest"
          },
          "401": {
            "$ref": "#/components/responses/Unauthorized"
          },
          "403": {
            "$ref": "#/components/responses/Forbidden"
          },
          "404": {
            "$ref": "#/components/responses/NotFound"
          },
          "409": {
            "$ref": "#/components/responses/Conflict"
          },
          "429": {
            "$ref": "#/components/responses/TooManyRequests"
          },
          "500": {
            "$ref": "#/components/responses/InternalError"
          },
          "503": {
            "$ref": "#/components/responses/ServiceUnavailable"
          }
        },
        "x-homejourney-route": {
          "externalPath": "/v1/webhooks/subscription-deliveries/{id}/replay",
          "implementationPath": "/api/platform/v1/webhooks/subscription-deliveries/[id]/replay",
          "idempotency": "required_mutating_route",
          "changePolicy": "additive_only",
          "featureFlag": "enable_platform_managed_webhook_subscriptions"
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "PlatformApiKey": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "hjp_test_* or hjp_live_*",
        "description": "Platform API key. Sandbox keys start with `hjp_test_`; live keys start with `hjp_live_`."
      }
    },
    "parameters": {
      "IdempotencyKey": {
        "name": "Idempotency-Key",
        "in": "header",
        "required": true,
        "description": "Required for mutating platform routes. Accepted format: 8 to 128 ASCII characters matching `[A-Za-z0-9._:-]+`.",
        "schema": {
          "type": "string",
          "minLength": 8,
          "maxLength": 128
        }
      },
      "CorrelationId": {
        "name": "X-Correlation-Id",
        "in": "header",
        "required": false,
        "description": "Optional partner-provided correlation ID echoed into request evidence.",
        "schema": {
          "type": "string",
          "maxLength": 128
        }
      }
    },
    "headers": {
      "RequestId": {
        "description": "Homejourney request identifier for support and audit correlation.",
        "schema": {
          "type": "string"
        }
      },
      "RateLimitLimit": {
        "description": "Maximum requests allowed in the current fixed window.",
        "schema": {
          "type": "integer"
        }
      },
      "RateLimitRemaining": {
        "description": "Remaining requests in the current fixed window.",
        "schema": {
          "type": "integer"
        }
      },
      "RateLimitReset": {
        "description": "Unix timestamp when the current fixed window resets.",
        "schema": {
          "type": "integer"
        }
      },
      "RetryAfter": {
        "description": "Seconds to wait before retrying a rate-limited request.",
        "schema": {
          "type": "integer"
        }
      },
      "IdempotencyReplayed": {
        "description": "True when a completed mutating request is replayed from idempotency storage.",
        "schema": {
          "type": "boolean"
        }
      }
    },
    "schemas": {
      "PlatformScope": {
        "type": "string",
        "enum": [
          "organizations.read",
          "onboarding.write",
          "credentials.write",
          "listings.read",
          "listings.write",
          "viewings.read",
          "viewings.write",
          "webhooks.read",
          "webhooks.write",
          "sandbox.reset",
          "agent.profile.read",
          "agent.profile.write",
          "agent.listings.read",
          "agent.listings.write",
          "agent.listings.publish",
          "agent.leads.read",
          "agent.leads.write",
          "agent.clients.read",
          "agent.clients.write",
          "agent.viewings.read",
          "agent.viewings.write",
          "agent.distribution.read",
          "agent.distribution.manage",
          "agent.analytics.read",
          "agency.roster.read",
          "agency.roster.manage",
          "agency.teams.manage",
          "agency.listings.read",
          "agency.listings.manage",
          "agency.leads.route",
          "agency.analytics.read",
          "agency.audit.read",
          "agency.integrations.manage",
          "sites.read",
          "sites.write",
          "sites.publish",
          "sites.domains.manage",
          "forms.read",
          "forms.write",
          "forms.submissions.read",
          "scheduling.read",
          "scheduling.write",
          "crm.read",
          "crm.write",
          "crm.sync",
          "widgets.embed",
          "developers.projects.read",
          "developers.projects.write",
          "developers.inventory.read",
          "developers.inventory.write",
          "developers.inventory.publish",
          "developers.prices.read",
          "developers.prices.write",
          "developers.media.write",
          "developers.showflat.read",
          "developers.showflat.write",
          "developers.leads.read",
          "developers.leads.route",
          "renovations.projects.read",
          "renovations.projects.write",
          "development_professional_services.projects.read",
          "valuation_appraisal.cases.read",
          "valuations.read",
          "valuations.embed_keys.read",
          "valuations.embed_keys.write",
          "portfolio.read",
          "property_management.units.read",
          "geospatial.read",
          "insurance_move_in.cases.read",
          "insurance_move_in.cases.write",
          "advertising.campaigns.read",
          "advertising.campaigns.write",
          "advertising.analytics.read",
          "business_directory.profiles.read",
          "business_directory.profiles.write",
          "banks.frontends.read",
          "banks.frontends.write",
          "banks.frontends.publish",
          "banks.eligibility.read",
          "banks.rates.read",
          "banks.products.read",
          "banks.applications.read",
          "banks.applications.write",
          "banks.applications.status.write",
          "banks.documents.read",
          "banks.documents.manifest.write",
          "banks.callbacks.manage",
          "banks.staff.read",
          "banks.staff.manage",
          "banks.audit.read",
          "official_sources.read",
          "official_sources.datasets.read",
          "official_sources.freshness.read",
          "official_sources.audit.read",
          "official_sources.refresh",
          "official_sources.credentials.manage",
          "official_sources.admin",
          "services.bookings.read",
          "services.payments.read",
          "services.payments.write",
          "services.payouts.read",
          "services.payouts.manage",
          "services.payouts.admin",
          "services.settlement.reconcile",
          "platform.billing_owner_visibility.read",
          "platform.import_export_readiness.read",
          "provider_workspace.read",
          "provider_leads.read",
          "provider_leads.manage",
          "provider_bookings.read",
          "provider_bookings.manage",
          "provider_conversations.write",
          "provider_integrations.manage",
          "provider_integrations.sync",
          "provider_catalog.read",
          "provider_sites.read",
          "provider_sites.write",
          "provider_sites.publish",
          "provider_ai.permissions.manage",
          "transactions.read",
          "transactions.write",
          "transactions.documents.read",
          "transactions.documents.write",
          "transactions.milestones.write",
          "conveyancing.matters.read",
          "conveyancing.matters.write",
          "conveyancing.law_firms.manage",
          "conveyancing.audit.read",
          "conveyancing.shares.write",
          "stamp_duty.status.read",
          "stamp_duty.status.write",
          "consents.read",
          "consents.write",
          "document_shares.read",
          "document_shares.write",
          "agent_hosts.read",
          "agent_hosts.write"
        ],
        "description": "Approved additive platform scope string. Domain scopes are contract-defined for future routes but are not granted to the slice-1 sandbox fixture by default."
      },
      "AgentListingActionRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "action",
          "listing_id",
          "instruction"
        ],
        "properties": {
          "action": {
            "type": "string",
            "enum": [
              "prepare_listing_draft_update"
            ]
          },
          "listing_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "instruction": {
            "type": "string",
            "minLength": 1,
            "maxLength": 1000
          }
        }
      },
      "AgentListingActionResponse": {
        "type": "object",
        "required": [
          "ok",
          "action",
          "action_id",
          "status",
          "required_scope",
          "required_confirmation",
          "idempotency_required",
          "expires_at",
          "agent",
          "listing",
          "side_effects",
          "safety",
          "continuation",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "ok": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "action": {
            "type": "string",
            "enum": [
              "prepare_listing_draft_update"
            ]
          },
          "action_id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "prepared"
            ]
          },
          "required_scope": {
            "type": "string",
            "enum": [
              "agent.listings.read"
            ]
          },
          "required_confirmation": {
            "type": "string",
            "enum": [
              "first_party_app"
            ]
          },
          "idempotency_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          },
          "agent": {
            "type": "object",
            "required": [
              "id",
              "cea_registration_number",
              "cea_verified"
            ],
            "properties": {
              "id": {
                "type": "string",
                "enum": [
                  "sandbox-agent-primary"
                ]
              },
              "cea_registration_number": {
                "type": "string",
                "enum": [
                  "R123456A"
                ]
              },
              "cea_verified": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "listing": {
            "type": "object",
            "required": [
              "id",
              "ownership_verified",
              "source"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "ownership_verified": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "source": {
                "type": "string",
                "enum": [
                  "sandbox_fixture"
                ]
              }
            }
          },
          "side_effects": {
            "type": "object",
            "required": [
              "prepared_action_created",
              "action_prepared_event_created",
              "canonical_listing_changed",
              "published",
              "distribution_changed",
              "contact_data_exposed",
              "external_system_calls"
            ],
            "properties": {
              "prepared_action_created": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "action_prepared_event_created": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "canonical_listing_changed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "published": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "distribution_changed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "contact_data_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "external_system_calls": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "safety": {
            "type": "object",
            "required": [
              "delegated",
              "api_confirmation_allowed",
              "api_rejection_allowed"
            ],
            "properties": {
              "delegated": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "api_confirmation_allowed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "api_rejection_allowed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "continuation": {
            "type": "object",
            "required": [
              "url",
              "handoff_required",
              "reason"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "handoff_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "reason": {
                "type": "string",
                "enum": [
                  "first_party_confirmation_required"
                ]
              }
            }
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "CurrentAgentResponse": {
        "type": "object",
        "required": [
          "agent",
          "authorization",
          "entitlements",
          "capabilities",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "agent": {
            "type": "object",
            "required": [
              "id",
              "display_name",
              "cea_registration_number",
              "cea_status",
              "cea_verified",
              "singpass_verified",
              "agency",
              "profile_visibility"
            ],
            "description": "Public-safe sandbox agent profile summary. Contact fields, documents, billing identifiers, private notes, and raw CRM data are not returned.",
            "properties": {
              "id": {
                "type": "string"
              },
              "display_name": {
                "type": "string"
              },
              "cea_registration_number": {
                "type": "string"
              },
              "cea_status": {
                "type": "string",
                "enum": [
                  "verified",
                  "expired",
                  "pending"
                ]
              },
              "cea_verified": {
                "type": "boolean"
              },
              "singpass_verified": {
                "type": "boolean"
              },
              "agency": {
                "type": "object",
                "required": [
                  "id",
                  "name",
                  "branch_name",
                  "team_name"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "branch_name": {
                    "type": "string"
                  },
                  "team_name": {
                    "type": "string"
                  }
                }
              },
              "profile_visibility": {
                "type": "string",
                "enum": [
                  "sandbox_fixture"
                ]
              }
            }
          },
          "authorization": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "api_key_id",
              "granted_agent_scopes",
              "actor_model",
              "live_agent_identity"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "api_key_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_agent_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "actor_model": {
                "type": "string",
                "enum": [
                  "api_key_automation_client"
                ]
              },
              "live_agent_identity": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              }
            }
          },
          "entitlements": {
            "type": "object",
            "required": [
              "agent_access",
              "listing_slots",
              "publish_allowed",
              "publish_blockers"
            ],
            "properties": {
              "agent_access": {
                "type": "object",
                "required": [
                  "status",
                  "source"
                ],
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "active"
                    ]
                  },
                  "source": {
                    "type": "string",
                    "enum": [
                      "sandbox_fixture"
                    ]
                  }
                }
              },
              "listing_slots": {
                "type": "object",
                "required": [
                  "status",
                  "limit",
                  "active",
                  "remaining"
                ],
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "active"
                    ]
                  },
                  "limit": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "active": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "remaining": {
                    "type": "integer",
                    "minimum": 0
                  }
                }
              },
              "publish_allowed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "publish_blockers": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "capabilities": {
            "type": "object",
            "required": [
              "read",
              "write_deferred"
            ],
            "properties": {
              "read": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "write_deferred": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "CurrentAgentProfileResponse": {
        "type": "object",
        "required": [
          "profile",
          "authorization",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "profile": {
            "type": "object",
            "required": [
              "agent_id",
              "profile_slug",
              "display_name",
              "headline",
              "biography",
              "languages",
              "specialties",
              "service_areas",
              "credentials",
              "agency",
              "transaction_expertise",
              "public_safety"
            ],
            "description": "Public-safe sandbox agent profile detail. Contact fields, private notes, raw CRM data, billing identifiers, and documents are not returned.",
            "properties": {
              "agent_id": {
                "type": "string"
              },
              "profile_slug": {
                "type": "string"
              },
              "display_name": {
                "type": "string"
              },
              "headline": {
                "type": "string"
              },
              "biography": {
                "type": "string"
              },
              "languages": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "specialties": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "service_areas": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "credentials": {
                "type": "object",
                "required": [
                  "cea_registration_number",
                  "cea_status",
                  "cea_verified",
                  "singpass_verified"
                ],
                "properties": {
                  "cea_registration_number": {
                    "type": "string"
                  },
                  "cea_status": {
                    "type": "string",
                    "enum": [
                      "verified",
                      "expired",
                      "pending"
                    ]
                  },
                  "cea_verified": {
                    "type": "boolean"
                  },
                  "singpass_verified": {
                    "type": "boolean"
                  }
                }
              },
              "agency": {
                "type": "object",
                "required": [
                  "id",
                  "name",
                  "branch_name",
                  "team_name"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "branch_name": {
                    "type": "string"
                  },
                  "team_name": {
                    "type": "string"
                  }
                }
              },
              "transaction_expertise": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "district",
                    "property_type",
                    "source",
                    "confidence"
                  ],
                  "properties": {
                    "district": {
                      "type": "string"
                    },
                    "property_type": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string",
                      "enum": [
                        "cea_transactions"
                      ]
                    },
                    "confidence": {
                      "type": "string",
                      "enum": [
                        "sandbox_fixture"
                      ]
                    }
                  }
                }
              },
              "public_safety": {
                "type": "object",
                "required": [
                  "profile_visibility",
                  "contact_fields_returned",
                  "private_notes_returned",
                  "documents_returned",
                  "crm_data_returned"
                ],
                "properties": {
                  "profile_visibility": {
                    "type": "string",
                    "enum": [
                      "sandbox_fixture"
                    ]
                  },
                  "contact_fields_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "private_notes_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "documents_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "crm_data_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              }
            }
          },
          "authorization": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "api_key_id",
              "granted_agent_scopes",
              "actor_model",
              "live_agent_identity"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "api_key_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_agent_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "actor_model": {
                "type": "string",
                "enum": [
                  "api_key_automation_client"
                ]
              },
              "live_agent_identity": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              }
            }
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "CurrentAgentListingsResponse": {
        "type": "object",
        "required": [
          "listings",
          "pagination",
          "portfolio_summary",
          "authorization",
          "principal",
          "public_safety",
          "livemode",
          "request_id"
        ],
        "properties": {
          "listings": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "title",
                "property_type",
                "district",
                "approximate_location",
                "price",
                "bedrooms",
                "bathrooms",
                "square_feet",
                "public_media_url",
                "source_updated_at",
                "freshness_status",
                "livemode",
                "agent_listing_status",
                "publish_state",
                "visibility",
                "allowed_actions",
                "blocked_actions",
                "ownership"
              ],
              "description": "Public-safe sandbox listing row owned by the current sandbox agent. Private notes, owner contact fields, source-agent contact metadata, routing internals, and distribution controls are not returned.",
              "properties": {
                "id": {
                  "type": "string"
                },
                "title": {
                  "type": "string"
                },
                "property_type": {
                  "type": "string"
                },
                "district": {
                  "type": "string"
                },
                "approximate_location": {
                  "type": "string"
                },
                "price": {
                  "type": "integer",
                  "minimum": 0
                },
                "bedrooms": {
                  "type": "integer",
                  "minimum": 0
                },
                "bathrooms": {
                  "type": "integer",
                  "minimum": 0
                },
                "square_feet": {
                  "type": "integer",
                  "minimum": 1
                },
                "public_media_url": {
                  "type": "string",
                  "format": "uri"
                },
                "source_updated_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "freshness_status": {
                  "type": "string",
                  "enum": [
                    "fresh",
                    "stale",
                    "unknown"
                  ]
                },
                "livemode": {
                  "type": "boolean",
                  "enum": [
                    false
                  ]
                },
                "agent_listing_status": {
                  "type": "string",
                  "enum": [
                    "active",
                    "draft"
                  ]
                },
                "publish_state": {
                  "type": "string",
                  "enum": [
                    "published",
                    "draft"
                  ]
                },
                "visibility": {
                  "type": "string",
                  "enum": [
                    "public_safe",
                    "sandbox_private_draft"
                  ]
                },
                "allowed_actions": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "blocked_actions": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "ownership": {
                  "type": "object",
                  "required": [
                    "agent_id",
                    "agency_id",
                    "source",
                    "delegated"
                  ],
                  "properties": {
                    "agent_id": {
                      "type": "string"
                    },
                    "agency_id": {
                      "type": "string"
                    },
                    "source": {
                      "type": "string",
                      "enum": [
                        "sandbox_fixture"
                      ]
                    },
                    "delegated": {
                      "type": "boolean",
                      "enum": [
                        false
                      ]
                    }
                  }
                }
              }
            }
          },
          "pagination": {
            "type": "object",
            "required": [
              "limit",
              "next_cursor"
            ],
            "properties": {
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              },
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "portfolio_summary": {
            "type": "object",
            "required": [
              "total",
              "active",
              "draft",
              "remaining_slots",
              "publish_allowed"
            ],
            "properties": {
              "total": {
                "type": "integer",
                "minimum": 0
              },
              "active": {
                "type": "integer",
                "minimum": 0
              },
              "draft": {
                "type": "integer",
                "minimum": 0
              },
              "remaining_slots": {
                "type": "integer",
                "minimum": 0
              },
              "publish_allowed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "authorization": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "api_key_id",
              "granted_agent_scopes",
              "actor_model",
              "live_agent_identity"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "api_key_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_agent_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "actor_model": {
                "type": "string",
                "enum": [
                  "api_key_automation_client"
                ]
              },
              "live_agent_identity": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              }
            }
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "public_safety": {
            "type": "object",
            "required": [
              "listing_fields",
              "private_notes_returned",
              "owner_contact_returned",
              "routing_data_returned",
              "distribution_controls_returned"
            ],
            "properties": {
              "listing_fields": {
                "type": "string",
                "enum": [
                  "public_safe"
                ]
              },
              "private_notes_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "owner_contact_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "routing_data_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "distribution_controls_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "CurrentAgentAnalyticsResponse": {
        "type": "object",
        "required": [
          "analytics",
          "authorization",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "analytics": {
            "type": "object",
            "required": [
              "agent_id",
              "period",
              "listing_metrics",
              "engagement_metrics",
              "response_metrics",
              "public_safety"
            ],
            "description": "Aggregate-only sandbox analytics for the current sandbox agent. Customer PII, contact fields, private notes, lead/client rows, and raw event logs are not returned.",
            "properties": {
              "agent_id": {
                "type": "string"
              },
              "period": {
                "type": "object",
                "required": [
                  "start_date",
                  "end_date",
                  "timezone"
                ],
                "properties": {
                  "start_date": {
                    "type": "string",
                    "format": "date"
                  },
                  "end_date": {
                    "type": "string",
                    "format": "date"
                  },
                  "timezone": {
                    "type": "string",
                    "enum": [
                      "Asia/Singapore"
                    ]
                  }
                }
              },
              "listing_metrics": {
                "type": "object",
                "required": [
                  "active_listings",
                  "draft_listings",
                  "public_listing_views",
                  "saved_listing_count",
                  "viewing_request_count"
                ],
                "properties": {
                  "active_listings": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "draft_listings": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "public_listing_views": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "saved_listing_count": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "viewing_request_count": {
                    "type": "integer",
                    "minimum": 0
                  }
                }
              },
              "engagement_metrics": {
                "type": "object",
                "required": [
                  "profile_views",
                  "share_clicks",
                  "inquiry_clicks"
                ],
                "properties": {
                  "profile_views": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "share_clicks": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "inquiry_clicks": {
                    "type": "integer",
                    "minimum": 0
                  }
                }
              },
              "response_metrics": {
                "type": "object",
                "required": [
                  "median_first_response_minutes",
                  "sla_target_minutes",
                  "sla_met_rate"
                ],
                "properties": {
                  "median_first_response_minutes": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "sla_target_minutes": {
                    "type": "integer",
                    "minimum": 1
                  },
                  "sla_met_rate": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1
                  }
                }
              },
              "public_safety": {
                "type": "object",
                "required": [
                  "aggregate_only",
                  "customer_pii_returned",
                  "customer_contact_returned",
                  "private_notes_returned",
                  "raw_event_logs_returned"
                ],
                "properties": {
                  "aggregate_only": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "customer_pii_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "customer_contact_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "private_notes_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_event_logs_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              }
            }
          },
          "authorization": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "api_key_id",
              "granted_agent_scopes",
              "actor_model",
              "live_agent_identity"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "api_key_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_agent_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "actor_model": {
                "type": "string",
                "enum": [
                  "api_key_automation_client"
                ]
              },
              "live_agent_identity": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              }
            }
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "CurrentAgentClientsResponse": {
        "type": "object",
        "required": [
          "clients",
          "authorization",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "clients": {
            "type": "object",
            "required": [
              "agent_id",
              "summary",
              "clients",
              "public_safety"
            ],
            "description": "Public-safe sandbox client relationship status for the current sandbox agent. Client names, customer PII, contact fields, private notes, raw messages, financial documents, identity documents, owner contact fields, routing data, contact exports, and write controls are not returned.",
            "properties": {
              "agent_id": {
                "type": "string"
              },
              "summary": {
                "type": "object",
                "required": [
                  "total_clients",
                  "active_clients",
                  "nurturing_clients",
                  "dormant_clients",
                  "contact_fields_returned",
                  "private_notes_returned"
                ],
                "properties": {
                  "total_clients": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "active_clients": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "nurturing_clients": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "dormant_clients": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "contact_fields_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "private_notes_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              },
              "clients": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "client_id",
                    "redacted_client_reference",
                    "relationship_stage",
                    "intent",
                    "budget_band",
                    "preferred_property_types",
                    "preferred_locations",
                    "linked_listing_ids",
                    "last_activity_at",
                    "next_action",
                    "consent",
                    "actions"
                  ],
                  "properties": {
                    "client_id": {
                      "type": "string"
                    },
                    "redacted_client_reference": {
                      "type": "string"
                    },
                    "relationship_stage": {
                      "type": "string",
                      "enum": [
                        "active_search",
                        "post_viewing_follow_up",
                        "nurturing"
                      ]
                    },
                    "intent": {
                      "type": "string",
                      "enum": [
                        "buy",
                        "rent",
                        "sell"
                      ]
                    },
                    "budget_band": {
                      "type": "string"
                    },
                    "preferred_property_types": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "preferred_locations": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "linked_listing_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "last_activity_at": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "next_action": {
                      "type": "string",
                      "enum": [
                        "owned_homejourney_flow_required"
                      ]
                    },
                    "consent": {
                      "type": "object",
                      "required": [
                        "contact_allowed",
                        "marketing_allowed",
                        "consent_receipt_returned"
                      ],
                      "properties": {
                        "contact_allowed": {
                          "type": "boolean",
                          "enum": [
                            false
                          ]
                        },
                        "marketing_allowed": {
                          "type": "boolean",
                          "enum": [
                            false
                          ]
                        },
                        "consent_receipt_returned": {
                          "type": "boolean",
                          "enum": [
                            false
                          ]
                        }
                      }
                    },
                    "actions": {
                      "type": "object",
                      "required": [
                        "allowed",
                        "blocked"
                      ],
                      "properties": {
                        "allowed": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "blocked": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "public_safety": {
                "type": "object",
                "required": [
                  "client_names_returned",
                  "customer_pii_returned",
                  "customer_contact_returned",
                  "private_notes_returned",
                  "raw_message_returned",
                  "financial_documents_returned",
                  "identity_documents_returned",
                  "owner_contact_returned",
                  "routing_data_returned",
                  "contact_export_returned",
                  "write_controls_returned"
                ],
                "properties": {
                  "client_names_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "customer_pii_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "customer_contact_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "private_notes_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_message_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "financial_documents_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "identity_documents_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "owner_contact_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "routing_data_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "contact_export_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "write_controls_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              }
            }
          },
          "authorization": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "api_key_id",
              "granted_agent_scopes",
              "actor_model",
              "live_agent_identity"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "api_key_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_agent_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "actor_model": {
                "type": "string",
                "enum": [
                  "api_key_automation_client"
                ]
              },
              "live_agent_identity": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              }
            }
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "CurrentAgentDistributionResponse": {
        "type": "object",
        "required": [
          "distribution",
          "authorization",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "distribution": {
            "type": "object",
            "required": [
              "agent_id",
              "summary",
              "listings",
              "public_safety"
            ],
            "description": "Public-safe sandbox distribution status for the current sandbox agent. Lead counts, customer PII, owner contact fields, contact exports, routing data, raw channel configuration, and distribution controls are not returned.",
            "properties": {
              "agent_id": {
                "type": "string"
              },
              "summary": {
                "type": "object",
                "required": [
                  "total_listings",
                  "active_listings",
                  "draft_listings",
                  "active_channels",
                  "pending_channels",
                  "paused_channels",
                  "failed_channels",
                  "lead_counts_returned"
                ],
                "properties": {
                  "total_listings": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "active_listings": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "draft_listings": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "active_channels": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "pending_channels": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "paused_channels": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "failed_channels": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "lead_counts_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              },
              "listings": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "listing_id",
                    "title",
                    "agent_listing_status",
                    "distribution_state",
                    "eligibility",
                    "channels",
                    "actions"
                  ],
                  "properties": {
                    "listing_id": {
                      "type": "string"
                    },
                    "title": {
                      "type": "string"
                    },
                    "agent_listing_status": {
                      "type": "string",
                      "enum": [
                        "active",
                        "draft"
                      ]
                    },
                    "distribution_state": {
                      "type": "string",
                      "enum": [
                        "active",
                        "unpublished"
                      ]
                    },
                    "eligibility": {
                      "type": "object",
                      "required": [
                        "eligible",
                        "blockers",
                        "source"
                      ],
                      "properties": {
                        "eligible": {
                          "type": "boolean"
                        },
                        "blockers": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "source": {
                          "type": "string",
                          "enum": [
                            "sandbox_fixture"
                          ]
                        }
                      }
                    },
                    "channels": {
                      "type": "array",
                      "items": {
                        "type": "object",
                        "required": [
                          "channel_id",
                          "channel_name",
                          "display_name",
                          "channel_type",
                          "status",
                          "syndicated_at",
                          "paused_at",
                          "failure_code",
                          "lead_count_returned",
                          "lead_count"
                        ],
                        "properties": {
                          "channel_id": {
                            "type": "string"
                          },
                          "channel_name": {
                            "type": "string"
                          },
                          "display_name": {
                            "type": "string"
                          },
                          "channel_type": {
                            "type": "string",
                            "enum": [
                              "homejourney",
                              "partner_portal",
                              "social",
                              "mls"
                            ]
                          },
                          "status": {
                            "type": "string",
                            "enum": [
                              "active",
                              "pending_review",
                              "paused",
                              "failed"
                            ]
                          },
                          "syndicated_at": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "format": "date-time"
                          },
                          "paused_at": {
                            "type": [
                              "string",
                              "null"
                            ],
                            "format": "date-time"
                          },
                          "failure_code": {
                            "type": [
                              "string",
                              "null"
                            ]
                          },
                          "lead_count_returned": {
                            "type": "boolean",
                            "enum": [
                              false
                            ]
                          },
                          "lead_count": {
                            "type": "null"
                          }
                        }
                      }
                    },
                    "actions": {
                      "type": "object",
                      "required": [
                        "allowed",
                        "blocked"
                      ],
                      "properties": {
                        "allowed": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "blocked": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "public_safety": {
                "type": "object",
                "required": [
                  "channel_status_returned",
                  "lead_counts_returned",
                  "customer_pii_returned",
                  "owner_contact_returned",
                  "contact_export_returned",
                  "routing_data_returned",
                  "raw_channel_config_returned",
                  "distribution_controls_returned"
                ],
                "properties": {
                  "channel_status_returned": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "lead_counts_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "customer_pii_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "owner_contact_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "contact_export_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "routing_data_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_channel_config_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "distribution_controls_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              }
            }
          },
          "authorization": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "api_key_id",
              "granted_agent_scopes",
              "actor_model",
              "live_agent_identity"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "api_key_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_agent_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "actor_model": {
                "type": "string",
                "enum": [
                  "api_key_automation_client"
                ]
              },
              "live_agent_identity": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              }
            }
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "CurrentAgentLeadsResponse": {
        "type": "object",
        "required": [
          "leads",
          "authorization",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "leads": {
            "type": "object",
            "required": [
              "agent_id",
              "summary",
              "leads",
              "public_safety"
            ],
            "description": "Public-safe sandbox lead status for the current sandbox agent. Customer PII, contact fields, raw messages, private notes, owner contact fields, routing data, contact exports, and write controls are not returned.",
            "properties": {
              "agent_id": {
                "type": "string"
              },
              "summary": {
                "type": "object",
                "required": [
                  "total_leads",
                  "new_leads",
                  "contacted_leads",
                  "qualified_leads",
                  "archived_leads",
                  "contact_fields_returned"
                ],
                "properties": {
                  "total_leads": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "new_leads": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "contacted_leads": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "qualified_leads": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "archived_leads": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "contact_fields_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              },
              "leads": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "lead_id",
                    "listing_id",
                    "listing_title",
                    "status",
                    "source_channel",
                    "created_at",
                    "redacted_lead_reference",
                    "intent",
                    "budget_band",
                    "timeframe",
                    "consent",
                    "actions"
                  ],
                  "properties": {
                    "lead_id": {
                      "type": "string"
                    },
                    "listing_id": {
                      "type": "string"
                    },
                    "listing_title": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "new",
                        "contacted",
                        "qualified",
                        "archived"
                      ]
                    },
                    "source_channel": {
                      "type": "string",
                      "enum": [
                        "homejourney_sandbox",
                        "partner_sandbox",
                        "distribution_sandbox"
                      ]
                    },
                    "created_at": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "redacted_lead_reference": {
                      "type": "string"
                    },
                    "intent": {
                      "type": "string",
                      "enum": [
                        "buy",
                        "rent",
                        "sell"
                      ]
                    },
                    "budget_band": {
                      "type": "string"
                    },
                    "timeframe": {
                      "type": "string"
                    },
                    "consent": {
                      "type": "object",
                      "required": [
                        "contact_allowed",
                        "marketing_allowed",
                        "consent_receipt_returned"
                      ],
                      "properties": {
                        "contact_allowed": {
                          "type": "boolean",
                          "enum": [
                            false
                          ]
                        },
                        "marketing_allowed": {
                          "type": "boolean",
                          "enum": [
                            false
                          ]
                        },
                        "consent_receipt_returned": {
                          "type": "boolean",
                          "enum": [
                            false
                          ]
                        }
                      }
                    },
                    "actions": {
                      "type": "object",
                      "required": [
                        "allowed",
                        "blocked"
                      ],
                      "properties": {
                        "allowed": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "blocked": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "public_safety": {
                "type": "object",
                "required": [
                  "customer_pii_returned",
                  "customer_contact_returned",
                  "private_notes_returned",
                  "raw_message_returned",
                  "owner_contact_returned",
                  "routing_data_returned",
                  "contact_export_returned",
                  "write_controls_returned"
                ],
                "properties": {
                  "customer_pii_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "customer_contact_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "private_notes_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_message_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "owner_contact_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "routing_data_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "contact_export_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "write_controls_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              }
            }
          },
          "authorization": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "api_key_id",
              "granted_agent_scopes",
              "actor_model",
              "live_agent_identity"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "api_key_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_agent_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "actor_model": {
                "type": "string",
                "enum": [
                  "api_key_automation_client"
                ]
              },
              "live_agent_identity": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              }
            }
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "CurrentAgentViewingsResponse": {
        "type": "object",
        "required": [
          "viewings",
          "authorization",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "viewings": {
            "type": "object",
            "required": [
              "agent_id",
              "summary",
              "viewings",
              "public_safety"
            ],
            "description": "Public-safe sandbox viewing status for the current sandbox agent. Customer PII, customer contact fields, owner contact fields, private notes, routing data, live calendar data, and calendar write controls are not returned.",
            "properties": {
              "agent_id": {
                "type": "string"
              },
              "summary": {
                "type": "object",
                "required": [
                  "total_viewings",
                  "requested_viewings",
                  "confirmed_viewings",
                  "completed_viewings",
                  "cancelled_viewings",
                  "live_calendar_returned"
                ],
                "properties": {
                  "total_viewings": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "requested_viewings": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "confirmed_viewings": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "completed_viewings": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "cancelled_viewings": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "live_calendar_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              },
              "viewings": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "viewing_id",
                    "listing_id",
                    "listing_title",
                    "status",
                    "scheduled_window",
                    "request_channel",
                    "visitor_context",
                    "actions"
                  ],
                  "properties": {
                    "viewing_id": {
                      "type": "string"
                    },
                    "listing_id": {
                      "type": "string"
                    },
                    "listing_title": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "requested",
                        "confirmed",
                        "completed",
                        "cancelled"
                      ]
                    },
                    "scheduled_window": {
                      "type": "object",
                      "required": [
                        "start_at",
                        "end_at",
                        "timezone"
                      ],
                      "properties": {
                        "start_at": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "end_at": {
                          "type": [
                            "string",
                            "null"
                          ],
                          "format": "date-time"
                        },
                        "timezone": {
                          "type": "string",
                          "enum": [
                            "Asia/Singapore"
                          ]
                        }
                      }
                    },
                    "request_channel": {
                      "type": "string",
                      "enum": [
                        "homejourney_sandbox",
                        "partner_sandbox"
                      ]
                    },
                    "visitor_context": {
                      "type": "object",
                      "required": [
                        "reference",
                        "party_size",
                        "pii_returned",
                        "contact_returned"
                      ],
                      "properties": {
                        "reference": {
                          "type": "string"
                        },
                        "party_size": {
                          "type": "integer",
                          "minimum": 1
                        },
                        "pii_returned": {
                          "type": "boolean",
                          "enum": [
                            false
                          ]
                        },
                        "contact_returned": {
                          "type": "boolean",
                          "enum": [
                            false
                          ]
                        }
                      }
                    },
                    "actions": {
                      "type": "object",
                      "required": [
                        "allowed",
                        "blocked"
                      ],
                      "properties": {
                        "allowed": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        },
                        "blocked": {
                          "type": "array",
                          "items": {
                            "type": "string"
                          }
                        }
                      }
                    }
                  }
                }
              },
              "public_safety": {
                "type": "object",
                "required": [
                  "customer_pii_returned",
                  "customer_contact_returned",
                  "private_notes_returned",
                  "owner_contact_returned",
                  "routing_data_returned",
                  "live_calendar_returned",
                  "calendar_write_controls_returned"
                ],
                "properties": {
                  "customer_pii_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "customer_contact_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "private_notes_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "owner_contact_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "routing_data_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "live_calendar_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "calendar_write_controls_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              }
            }
          },
          "authorization": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "api_key_id",
              "granted_agent_scopes",
              "actor_model",
              "live_agent_identity"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "api_key_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_agent_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "actor_model": {
                "type": "string",
                "enum": [
                  "api_key_automation_client"
                ]
              },
              "live_agent_identity": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              }
            }
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "AgentHostPreparedActionStatusResponse": {
        "type": "object",
        "required": [
          "ok",
          "action",
          "grant",
          "safety",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "ok": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "action": {
            "$ref": "#/components/schemas/AgentHostPreparedActionStatus"
          },
          "grant": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/AgentHostGrantRuntime"
              },
              {
                "type": "null"
              }
            ]
          },
          "safety": {
            "$ref": "#/components/schemas/AgentHostActionSafety"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "AgentHostPreparedActionStatus": {
        "type": "object",
        "required": [
          "id",
          "action_id",
          "vertical_id",
          "host_class",
          "actor_id",
          "capability",
          "description",
          "status",
          "required_scope",
          "idempotency_key_hash",
          "side_effects_summary",
          "confirmation_required",
          "revocable",
          "prepared_at",
          "expires_at",
          "confirmed_at",
          "rejected_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "action_id": {
            "type": "string"
          },
          "vertical_id": {
            "type": "string"
          },
          "host_class": {
            "type": "string"
          },
          "actor_id": {
            "type": "string"
          },
          "capability": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "prepared",
              "confirmed",
              "rejected",
              "expired",
              "executed",
              "failed",
              "blocked_by_revoked_grant",
              "blocked_by_missing_grant"
            ]
          },
          "required_scope": {
            "$ref": "#/components/schemas/PlatformScope"
          },
          "idempotency_key_hash": {
            "type": "string"
          },
          "side_effects_summary": {
            "type": "string"
          },
          "confirmation_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "revocable": {
            "type": "boolean"
          },
          "prepared_at": {
            "type": "string",
            "format": "date-time"
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          },
          "confirmed_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "rejected_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          }
        }
      },
      "AgentHostGrantRuntime": {
        "type": "object",
        "required": [
          "grant_id",
          "host_class",
          "actor_id",
          "organization_id",
          "client_id",
          "subject_type",
          "subject_id",
          "status",
          "scopes",
          "granted_at",
          "revoked_at",
          "revocation_reason",
          "tools_hidden",
          "future_calls_fail_closed"
        ],
        "properties": {
          "grant_id": {
            "type": "string",
            "format": "uuid"
          },
          "host_class": {
            "type": "string"
          },
          "actor_id": {
            "type": "string"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid"
          },
          "client_id": {
            "type": "string",
            "format": "uuid"
          },
          "subject_type": {
            "type": "string"
          },
          "subject_id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "revoked",
              "expired",
              "suspended"
            ]
          },
          "scopes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformScope"
            }
          },
          "granted_at": {
            "type": "string",
            "format": "date-time"
          },
          "revoked_at": {
            "type": "string",
            "format": "date-time",
            "nullable": true
          },
          "revocation_reason": {
            "type": "string",
            "nullable": true
          },
          "tools_hidden": {
            "type": "boolean"
          },
          "future_calls_fail_closed": {
            "type": "boolean",
            "enum": [
              true
            ]
          }
        }
      },
      "AgentHostActionSafety": {
        "type": "object",
        "required": [
          "confirmation_required",
          "revoked_grant_blocks_execution",
          "missing_grant_blocks_execution",
          "future_calls_fail_closed",
          "tools_hidden"
        ],
        "properties": {
          "confirmation_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "revoked_grant_blocks_execution": {
            "type": "boolean"
          },
          "missing_grant_blocks_execution": {
            "type": "boolean"
          },
          "future_calls_fail_closed": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "tools_hidden": {
            "type": "boolean"
          }
        }
      },
      "AgentHostGrantRevocationRequest": {
        "type": "object",
        "required": [
          "reason"
        ],
        "additionalProperties": false,
        "properties": {
          "reason": {
            "type": "string",
            "minLength": 3,
            "maxLength": 500
          }
        }
      },
      "AgentHostGrantRevocationResponse": {
        "type": "object",
        "required": [
          "ok",
          "revocation",
          "grant",
          "already_revoked",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "ok": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "revocation": {
            "$ref": "#/components/schemas/AgentHostGrantRevocation"
          },
          "grant": {
            "$ref": "#/components/schemas/AgentHostGrantRuntime"
          },
          "already_revoked": {
            "type": "boolean"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "AgentHostGrantRevocation": {
        "type": "object",
        "required": [
          "grant_id",
          "revoked_by",
          "revoked_at",
          "revocation_reason",
          "audit_event_id",
          "tools_hidden",
          "future_calls_fail_closed"
        ],
        "properties": {
          "grant_id": {
            "type": "string",
            "format": "uuid"
          },
          "revoked_by": {
            "type": "string"
          },
          "revoked_at": {
            "type": "string",
            "format": "date-time"
          },
          "revocation_reason": {
            "type": "string"
          },
          "audit_event_id": {
            "type": "string"
          },
          "tools_hidden": {
            "type": "boolean"
          },
          "future_calls_fail_closed": {
            "type": "boolean",
            "enum": [
              true
            ]
          }
        }
      },
      "CurrentAgencyRosterResponse": {
        "type": "object",
        "required": [
          "roster",
          "authorization",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "roster": {
            "type": "object",
            "required": [
              "agency",
              "summary",
              "branches",
              "teams",
              "agents",
              "assistants",
              "integrations",
              "public_safety"
            ],
            "description": "Public-safe sandbox agency roster. Contact fields, private notes, raw lead data, raw client data, identity documents, subscription receipts, billing identifiers, CRM secrets, contact exports, and write controls are not returned.",
            "properties": {
              "agency": {
                "type": "object",
                "required": [
                  "id",
                  "name",
                  "registration_number",
                  "status",
                  "environment"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "registration_number": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "sandbox_active"
                    ]
                  },
                  "environment": {
                    "type": "string",
                    "enum": [
                      "sandbox_fixture"
                    ]
                  }
                }
              },
              "summary": {
                "type": "object",
                "required": [
                  "total_agents",
                  "active_cea_agents",
                  "expired_cea_agents",
                  "teams",
                  "branches",
                  "assistants",
                  "crm_integrations",
                  "contact_fields_returned",
                  "private_notes_returned",
                  "identity_documents_returned"
                ],
                "properties": {
                  "total_agents": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "active_cea_agents": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "expired_cea_agents": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "teams": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "branches": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "assistants": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "crm_integrations": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "contact_fields_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "private_notes_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "identity_documents_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              },
              "branches": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "branch_id",
                    "name",
                    "region",
                    "team_ids"
                  ],
                  "properties": {
                    "branch_id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "region": {
                      "type": "string",
                      "enum": [
                        "central",
                        "east"
                      ]
                    },
                    "team_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              },
              "teams": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "team_id",
                    "branch_id",
                    "name",
                    "lead_agent_id",
                    "member_agent_ids",
                    "assistant_ids"
                  ],
                  "properties": {
                    "team_id": {
                      "type": "string"
                    },
                    "branch_id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "lead_agent_id": {
                      "type": "string"
                    },
                    "member_agent_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "assistant_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              },
              "agents": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "agent_id",
                    "display_name",
                    "cea_registration_number",
                    "cea_status",
                    "singpass_verified",
                    "branch_id",
                    "team_ids",
                    "role",
                    "allowed_actions",
                    "blocked_actions"
                  ],
                  "properties": {
                    "agent_id": {
                      "type": "string"
                    },
                    "display_name": {
                      "type": "string"
                    },
                    "cea_registration_number": {
                      "type": "string"
                    },
                    "cea_status": {
                      "type": "string",
                      "enum": [
                        "verified",
                        "expired"
                      ]
                    },
                    "singpass_verified": {
                      "type": "boolean"
                    },
                    "branch_id": {
                      "type": "string"
                    },
                    "team_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "role": {
                      "type": "string",
                      "enum": [
                        "salesperson"
                      ]
                    },
                    "allowed_actions": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "blocked_actions": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              },
              "assistants": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "assistant_id",
                    "display_role",
                    "assigned_team_ids",
                    "delegated",
                    "allowed_actions"
                  ],
                  "properties": {
                    "assistant_id": {
                      "type": "string"
                    },
                    "display_role": {
                      "type": "string",
                      "enum": [
                        "operations_assistant",
                        "crm_assistant"
                      ]
                    },
                    "assigned_team_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "delegated": {
                      "type": "boolean",
                      "enum": [
                        false
                      ]
                    },
                    "allowed_actions": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              },
              "integrations": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "integration_client_id",
                    "name",
                    "status",
                    "scopes",
                    "delegated_impersonation_allowed"
                  ],
                  "properties": {
                    "integration_client_id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "sandbox_only"
                      ]
                    },
                    "scopes": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/PlatformScope"
                      }
                    },
                    "delegated_impersonation_allowed": {
                      "type": "boolean",
                      "enum": [
                        false
                      ]
                    }
                  }
                }
              },
              "public_safety": {
                "type": "object",
                "required": [
                  "contact_fields_returned",
                  "private_notes_returned",
                  "customer_pii_returned",
                  "raw_lead_data_returned",
                  "raw_client_data_returned",
                  "identity_documents_returned",
                  "subscription_receipts_returned",
                  "billing_identifiers_returned",
                  "crm_secrets_returned",
                  "contact_export_returned",
                  "write_controls_returned"
                ],
                "properties": {
                  "contact_fields_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "private_notes_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "customer_pii_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_lead_data_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_client_data_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "identity_documents_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "subscription_receipts_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "billing_identifiers_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "crm_secrets_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "contact_export_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "write_controls_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              }
            }
          },
          "authorization": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "api_key_id",
              "granted_agency_scopes",
              "actor_model",
              "live_agency_identity",
              "delegation_model"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "api_key_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_agency_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "actor_model": {
                "type": "string",
                "enum": [
                  "api_key_automation_client"
                ]
              },
              "live_agency_identity": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              },
              "delegation_model": {
                "type": "string",
                "enum": [
                  "explicit_delegation_deferred"
                ]
              }
            }
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "CurrentAgencyTeamsResponse": {
        "type": "object",
        "required": [
          "teams",
          "authorization",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "teams": {
            "type": "object",
            "required": [
              "agency",
              "summary",
              "teams",
              "public_safety"
            ],
            "description": "Public-safe sandbox agency team summaries. Contact fields, private notes, raw lead data, raw client data, identity documents, CRM secrets, delegated impersonation, and write controls are not returned.",
            "properties": {
              "agency": {
                "type": "object",
                "required": [
                  "id",
                  "name",
                  "registration_number",
                  "status",
                  "environment"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "name": {
                    "type": "string"
                  },
                  "registration_number": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "sandbox_active"
                    ]
                  },
                  "environment": {
                    "type": "string",
                    "enum": [
                      "sandbox_fixture"
                    ]
                  }
                }
              },
              "summary": {
                "type": "object",
                "required": [
                  "total_teams",
                  "total_member_agents",
                  "total_assistants",
                  "delegated_actions_enabled",
                  "write_controls_returned"
                ],
                "properties": {
                  "total_teams": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "total_member_agents": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "total_assistants": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "delegated_actions_enabled": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "write_controls_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              },
              "teams": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "team_id",
                    "branch",
                    "name",
                    "lead_agent",
                    "members",
                    "assistants",
                    "summary"
                  ],
                  "properties": {
                    "team_id": {
                      "type": "string"
                    },
                    "branch": {
                      "type": "object",
                      "required": [
                        "branch_id",
                        "name",
                        "region"
                      ],
                      "properties": {
                        "branch_id": {
                          "type": "string"
                        },
                        "name": {
                          "type": "string"
                        },
                        "region": {
                          "type": "string",
                          "enum": [
                            "central",
                            "east"
                          ]
                        }
                      }
                    },
                    "name": {
                      "type": "string"
                    },
                    "lead_agent": {
                      "oneOf": [
                        {
                          "$ref": "#/components/schemas/AgencyTeamMember"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    },
                    "members": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/AgencyTeamMember"
                      }
                    },
                    "assistants": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/AgencyTeamAssistant"
                      }
                    },
                    "summary": {
                      "type": "object",
                      "required": [
                        "member_agents",
                        "verified_agents",
                        "expired_agents",
                        "assistants",
                        "delegated_actions_enabled",
                        "write_controls_returned"
                      ],
                      "properties": {
                        "member_agents": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "verified_agents": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "expired_agents": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "assistants": {
                          "type": "integer",
                          "minimum": 0
                        },
                        "delegated_actions_enabled": {
                          "type": "boolean",
                          "enum": [
                            false
                          ]
                        },
                        "write_controls_returned": {
                          "type": "boolean",
                          "enum": [
                            false
                          ]
                        }
                      }
                    }
                  }
                }
              },
              "public_safety": {
                "type": "object",
                "required": [
                  "contact_fields_returned",
                  "private_notes_returned",
                  "raw_lead_data_returned",
                  "raw_client_data_returned",
                  "identity_documents_returned",
                  "crm_secrets_returned",
                  "delegated_impersonation_returned",
                  "write_controls_returned"
                ],
                "properties": {
                  "contact_fields_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "private_notes_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_lead_data_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_client_data_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "identity_documents_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "crm_secrets_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "delegated_impersonation_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "write_controls_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              }
            }
          },
          "authorization": {
            "$ref": "#/components/schemas/CurrentAgencyRosterResponse/properties/authorization"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "AgencyTeamMember": {
        "type": "object",
        "required": [
          "agent_id",
          "display_name",
          "cea_registration_number",
          "cea_status",
          "singpass_verified",
          "role",
          "assignment",
          "allowed_actions",
          "blocked_actions"
        ],
        "properties": {
          "agent_id": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "cea_registration_number": {
            "type": "string"
          },
          "cea_status": {
            "type": "string",
            "enum": [
              "verified",
              "expired"
            ]
          },
          "singpass_verified": {
            "type": "boolean"
          },
          "role": {
            "type": "string",
            "enum": [
              "salesperson"
            ]
          },
          "assignment": {
            "type": "string",
            "enum": [
              "lead",
              "member"
            ]
          },
          "allowed_actions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "blocked_actions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "AgencyTeamAssistant": {
        "type": "object",
        "required": [
          "assistant_id",
          "display_role",
          "delegated",
          "allowed_actions"
        ],
        "properties": {
          "assistant_id": {
            "type": "string"
          },
          "display_role": {
            "type": "string",
            "enum": [
              "operations_assistant",
              "crm_assistant"
            ]
          },
          "delegated": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "allowed_actions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PlatformConsentPublicSafety": {
        "type": "object",
        "description": "Redaction guarantees applied to every consent response.",
        "required": [
          "consent_text_returned",
          "raw_user_pii_returned",
          "internal_audit_ids_returned",
          "recipient_billing_returned"
        ],
        "properties": {
          "consent_text_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_user_pii_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "internal_audit_ids_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "recipient_billing_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "PlatformDocumentSharePublicSafety": {
        "type": "object",
        "description": "Redaction guarantees applied to every document-share response.",
        "required": [
          "raw_document_content_returned",
          "storage_paths_returned",
          "permanent_urls_returned",
          "internal_audit_ids_returned"
        ],
        "properties": {
          "raw_document_content_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "storage_paths_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "permanent_urls_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "internal_audit_ids_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "PlatformConsentResource": {
        "type": "object",
        "description": "Public-safe view of a data-sharing grant where the calling partner organization is the recipient. Consent text, raw user PII, and internal audit ids are never included.",
        "required": [
          "id",
          "environment",
          "subject_user_id",
          "recipient_type",
          "scope",
          "data_category",
          "purpose",
          "purpose_version",
          "consent_text_version",
          "source_channel",
          "grant_status",
          "is_active",
          "retention_until",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "environment": {
            "type": "string",
            "enum": [
              "sandbox",
              "live"
            ]
          },
          "subject_user_id": {
            "type": "string",
            "format": "uuid"
          },
          "recipient_type": {
            "type": "string",
            "enum": [
              "ai_host",
              "marketplace_app",
              "bank",
              "law_firm",
              "agent",
              "agency",
              "service_provider",
              "developer",
              "official_source_operator",
              "internal_operator"
            ]
          },
          "recipient_organization_id": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          },
          "recipient_app_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "recipient_client_id": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          },
          "scope": {
            "type": "string"
          },
          "data_category": {
            "type": "string"
          },
          "purpose": {
            "type": "string"
          },
          "purpose_version": {
            "type": "string"
          },
          "consent_text_version": {
            "type": "string"
          },
          "source_channel": {
            "type": "string"
          },
          "grant_status": {
            "type": "string",
            "enum": [
              "active",
              "expired",
              "revoked",
              "superseded",
              "suspended"
            ]
          },
          "is_active": {
            "type": "boolean"
          },
          "last_used_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "expires_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "revoked_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "revocation_reason": {
            "type": [
              "string",
              "null"
            ]
          },
          "superseded_by_grant_id": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          },
          "retention_until": {
            "type": "string",
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformDocumentShareResource": {
        "type": "object",
        "description": "Public-safe document-share record: manifest metadata and a short-lived handoff TTL only. Raw document content, storage paths, and permanent URLs are never included.",
        "required": [
          "id",
          "environment",
          "grant_id",
          "subject_user_id",
          "recipient_type",
          "document_label",
          "data_category",
          "purpose",
          "manifest_summary",
          "share_status",
          "handoff_url_ttl_seconds",
          "expires_at",
          "retention_until",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "environment": {
            "type": "string",
            "enum": [
              "sandbox",
              "live"
            ]
          },
          "grant_id": {
            "type": "string",
            "format": "uuid"
          },
          "subject_user_id": {
            "type": "string",
            "format": "uuid"
          },
          "recipient_type": {
            "type": "string",
            "enum": [
              "ai_host",
              "marketplace_app",
              "bank",
              "law_firm",
              "agent",
              "agency",
              "service_provider",
              "developer",
              "official_source_operator",
              "internal_operator"
            ]
          },
          "recipient_organization_id": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          },
          "recipient_client_id": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          },
          "document_label": {
            "type": "string"
          },
          "data_category": {
            "type": "string"
          },
          "purpose": {
            "type": "string"
          },
          "manifest_summary": {
            "type": "object",
            "additionalProperties": true
          },
          "share_status": {
            "type": "string",
            "enum": [
              "active",
              "expired",
              "revoked",
              "superseded",
              "suspended"
            ]
          },
          "handoff_url_ttl_seconds": {
            "type": "integer"
          },
          "last_handoff_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          },
          "revoked_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "revocation_reason": {
            "type": [
              "string",
              "null"
            ]
          },
          "retention_until": {
            "type": "string",
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformConsentReceiptResource": {
        "type": "object",
        "description": "Append-only consent receipt. Survives grant revocation. Consent text snapshot is redacted.",
        "required": [
          "id",
          "environment",
          "grant_id",
          "receipt_status",
          "subject_user_id",
          "recipient_type",
          "recipient_display_name",
          "scope",
          "data_category",
          "purpose",
          "consent_text_version",
          "source_channel",
          "issued_at",
          "retention_until",
          "created_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "environment": {
            "type": "string",
            "enum": [
              "sandbox",
              "live"
            ]
          },
          "grant_id": {
            "type": "string",
            "format": "uuid"
          },
          "receipt_status": {
            "type": "string",
            "enum": [
              "issued",
              "revoked",
              "renewed",
              "superseded",
              "expired"
            ]
          },
          "subject_user_id": {
            "type": "string",
            "format": "uuid"
          },
          "recipient_type": {
            "type": "string",
            "enum": [
              "ai_host",
              "marketplace_app",
              "bank",
              "law_firm",
              "agent",
              "agency",
              "service_provider",
              "developer",
              "official_source_operator",
              "internal_operator"
            ]
          },
          "recipient_display_name": {
            "type": "string"
          },
          "scope": {
            "type": "string"
          },
          "data_category": {
            "type": "string"
          },
          "purpose": {
            "type": "string"
          },
          "consent_text_version": {
            "type": "string"
          },
          "source_channel": {
            "type": "string"
          },
          "issued_at": {
            "type": "string",
            "format": "date-time"
          },
          "expires_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "revoked_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "support_contact": {
            "type": [
              "string",
              "null"
            ]
          },
          "retention_until": {
            "type": "string",
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformConsentListResponse": {
        "type": "object",
        "required": [
          "consents",
          "public_safety",
          "livemode",
          "request_id"
        ],
        "properties": {
          "consents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformConsentResource"
            }
          },
          "public_safety": {
            "$ref": "#/components/schemas/PlatformConsentPublicSafety"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformConsentDetailResponse": {
        "type": "object",
        "required": [
          "consent",
          "public_safety",
          "livemode",
          "request_id"
        ],
        "properties": {
          "consent": {
            "$ref": "#/components/schemas/PlatformConsentResource"
          },
          "public_safety": {
            "$ref": "#/components/schemas/PlatformConsentPublicSafety"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformDataSharingCenterResponse": {
        "type": "object",
        "required": [
          "center",
          "public_safety",
          "livemode",
          "request_id"
        ],
        "properties": {
          "center": {
            "type": "object",
            "required": [
              "recipient_organization_id",
              "grants",
              "document_shares",
              "summary"
            ],
            "properties": {
              "recipient_organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "grants": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformConsentResource"
                }
              },
              "document_shares": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformDocumentShareResource"
                }
              },
              "summary": {
                "type": "object",
                "required": [
                  "total_grants",
                  "active_grants",
                  "revoked_grants",
                  "document_shares",
                  "active_document_shares"
                ],
                "properties": {
                  "total_grants": {
                    "type": "integer"
                  },
                  "active_grants": {
                    "type": "integer"
                  },
                  "revoked_grants": {
                    "type": "integer"
                  },
                  "document_shares": {
                    "type": "integer"
                  },
                  "active_document_shares": {
                    "type": "integer"
                  }
                }
              }
            }
          },
          "public_safety": {
            "$ref": "#/components/schemas/PlatformConsentPublicSafety"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformConsentReceiptsResponse": {
        "type": "object",
        "required": [
          "receipts",
          "public_safety",
          "livemode",
          "request_id"
        ],
        "properties": {
          "receipts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformConsentReceiptResource"
            }
          },
          "public_safety": {
            "$ref": "#/components/schemas/PlatformConsentPublicSafety"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformDocumentShareListResponse": {
        "type": "object",
        "required": [
          "document_shares",
          "public_safety",
          "livemode",
          "request_id"
        ],
        "properties": {
          "document_shares": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformDocumentShareResource"
            }
          },
          "public_safety": {
            "$ref": "#/components/schemas/PlatformDocumentSharePublicSafety"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformDocumentShareDetailResponse": {
        "type": "object",
        "required": [
          "document_share",
          "public_safety",
          "livemode",
          "request_id"
        ],
        "properties": {
          "document_share": {
            "$ref": "#/components/schemas/PlatformDocumentShareResource"
          },
          "public_safety": {
            "$ref": "#/components/schemas/PlatformDocumentSharePublicSafety"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "CreatePlatformDocumentShareRequest": {
        "type": "object",
        "required": [
          "grant_id",
          "document_label",
          "data_category",
          "manifest_summary",
          "expires_at",
          "retention_until"
        ],
        "additionalProperties": false,
        "properties": {
          "grant_id": {
            "type": "string",
            "format": "uuid"
          },
          "document_label": {
            "type": "string",
            "maxLength": 200
          },
          "data_category": {
            "type": "string",
            "enum": [
              "loan_application_documents",
              "bank_documents",
              "law_firm_document_manifest",
              "regulated_documents",
              "payment_or_payout_status",
              "support_history"
            ]
          },
          "manifest_summary": {
            "type": "object",
            "additionalProperties": true
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          },
          "retention_until": {
            "type": "string",
            "format": "date-time"
          },
          "purpose": {
            "type": "string",
            "maxLength": 200
          },
          "handoff_url_ttl_seconds": {
            "type": "integer",
            "minimum": 60,
            "maximum": 3600
          },
          "metadata": {
            "type": "object",
            "additionalProperties": true
          }
        }
      },
      "RevokePlatformConsentRequest": {
        "type": "object",
        "additionalProperties": false,
        "description": "Optional reason recorded when the recipient relinquishes the grant.",
        "properties": {
          "reason": {
            "type": "string",
            "maxLength": 500
          }
        }
      },
      "RevokePlatformDocumentShareRequest": {
        "type": "object",
        "additionalProperties": false,
        "description": "Optional reason recorded when the document share is revoked.",
        "properties": {
          "reason": {
            "type": "string",
            "maxLength": 500
          }
        }
      },
      "InsuranceMoveInCoordinationCase": {
        "type": "object",
        "required": [
          "id",
          "fixture_id",
          "journey_stage",
          "target_window",
          "property_context",
          "needs",
          "consent",
          "source_attribution",
          "redaction"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "fixture_id": {
            "type": "string"
          },
          "journey_stage": {
            "type": "string",
            "const": "move_in_planning"
          },
          "target_window": {
            "type": "string",
            "const": "within_30_days"
          },
          "property_context": {
            "type": "object",
            "required": [
              "planning_area",
              "property_type",
              "exact_address_exposed",
              "unit_number_exposed"
            ],
            "properties": {
              "planning_area": {
                "type": "string"
              },
              "property_type": {
                "type": "string",
                "enum": [
                  "hdb",
                  "condominium",
                  "landed"
                ]
              },
              "exact_address_exposed": {
                "type": "boolean",
                "const": false
              },
              "unit_number_exposed": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "needs": {
            "type": "object",
            "required": [
              "insurance",
              "utilities",
              "move_in_services"
            ],
            "properties": {
              "insurance": {
                "type": "string",
                "const": "contents_cover_review"
              },
              "utilities": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "electricity",
                    "internet"
                  ]
                }
              },
              "move_in_services": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "mover",
                    "condition_inspection"
                  ]
                }
              }
            }
          },
          "consent": {
            "type": "object",
            "required": [
              "partner_contact_authorized",
              "address_share_authorized",
              "identity_share_authorized"
            ],
            "properties": {
              "partner_contact_authorized": {
                "type": "boolean",
                "const": false
              },
              "address_share_authorized": {
                "type": "boolean",
                "const": false
              },
              "identity_share_authorized": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "source_attribution": {
            "type": "object",
            "required": [
              "source_type",
              "freshness_status",
              "fixture_updated_at"
            ],
            "properties": {
              "source_type": {
                "type": "string",
                "const": "sandbox_fixture"
              },
              "freshness_status": {
                "type": "string",
                "const": "current"
              },
              "fixture_updated_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "redaction": {
            "type": "object",
            "required": [
              "customer_identity_exposed",
              "contact_details_exposed",
              "exact_address_exposed",
              "policy_or_claim_data_exposed",
              "payment_data_exposed",
              "partner_credentials_exposed"
            ],
            "properties": {
              "customer_identity_exposed": {
                "type": "boolean",
                "const": false
              },
              "contact_details_exposed": {
                "type": "boolean",
                "const": false
              },
              "exact_address_exposed": {
                "type": "boolean",
                "const": false
              },
              "policy_or_claim_data_exposed": {
                "type": "boolean",
                "const": false
              },
              "payment_data_exposed": {
                "type": "boolean",
                "const": false
              },
              "partner_credentials_exposed": {
                "type": "boolean",
                "const": false
              }
            }
          }
        }
      },
      "InsuranceMoveInCaseListResponse": {
        "type": "object",
        "required": [
          "cases",
          "access",
          "livemode",
          "request_id"
        ],
        "properties": {
          "cases": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InsuranceMoveInCoordinationCase"
            }
          },
          "access": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "granted_scopes",
              "sandbox_fixture_mode",
              "live_case_reads",
              "blocked_actions"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "sandbox_fixture_mode": {
                "type": "string",
                "const": "read_only"
              },
              "live_case_reads": {
                "type": "string",
                "const": "deferred"
              },
              "blocked_actions": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "const": false
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "InsuranceMoveInPrepareRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "action",
          "confirm_prepare"
        ],
        "properties": {
          "action": {
            "type": "string",
            "enum": [
              "prepare_insurance_quote_request_checklist",
              "prepare_move_in_service_request_checklist"
            ]
          },
          "confirm_prepare": {
            "type": "boolean",
            "const": true
          }
        }
      },
      "InsuranceMoveInPrepareResponse": {
        "type": "object",
        "required": [
          "action",
          "action_id",
          "status",
          "required_scope",
          "coordination_case",
          "prepared_output",
          "professional_review",
          "side_effects",
          "livemode",
          "request_id",
          "idempotency_key_hash"
        ],
        "properties": {
          "action": {
            "type": "string",
            "enum": [
              "prepare_insurance_quote_request_checklist",
              "prepare_move_in_service_request_checklist"
            ]
          },
          "action_id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "const": "prepared_for_review"
          },
          "required_scope": {
            "type": "string",
            "const": "insurance_move_in.cases.write"
          },
          "coordination_case": {
            "$ref": "#/components/schemas/InsuranceMoveInCoordinationCase"
          },
          "prepared_output": {
            "type": "object",
            "required": [
              "kind",
              "headline",
              "checklist"
            ],
            "properties": {
              "kind": {
                "type": "string",
                "enum": [
                  "insurance_quote_request_checklist",
                  "move_in_service_request_checklist"
                ]
              },
              "headline": {
                "type": "string"
              },
              "checklist": {
                "type": "array",
                "minItems": 3,
                "maxItems": 3,
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "professional_review": {
            "type": "object",
            "required": [
              "required",
              "reviewer_role",
              "confirmation_available",
              "execution_available"
            ],
            "properties": {
              "required": {
                "type": "boolean",
                "const": true
              },
              "reviewer_role": {
                "type": "string",
                "enum": [
                  "licensed_insurance_professional",
                  "move_in_coordinator"
                ]
              },
              "confirmation_available": {
                "type": "boolean",
                "const": false
              },
              "execution_available": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "side_effects": {
            "type": "object",
            "required": [
              "quote_requested",
              "recommendation_returned",
              "policy_bound_or_changed",
              "claim_submitted",
              "service_booking_created",
              "appointment_scheduled",
              "partner_contacted",
              "address_or_identity_shared",
              "payment_initiated",
              "external_calls_made"
            ],
            "properties": {
              "quote_requested": {
                "type": "boolean",
                "const": false
              },
              "recommendation_returned": {
                "type": "boolean",
                "const": false
              },
              "policy_bound_or_changed": {
                "type": "boolean",
                "const": false
              },
              "claim_submitted": {
                "type": "boolean",
                "const": false
              },
              "service_booking_created": {
                "type": "boolean",
                "const": false
              },
              "appointment_scheduled": {
                "type": "boolean",
                "const": false
              },
              "partner_contacted": {
                "type": "boolean",
                "const": false
              },
              "address_or_identity_shared": {
                "type": "boolean",
                "const": false
              },
              "payment_initiated": {
                "type": "boolean",
                "const": false
              },
              "external_calls_made": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "const": false
          },
          "request_id": {
            "type": "string"
          },
          "idempotency_key_hash": {
            "type": "string"
          }
        }
      },
      "CurrentAgencyAnalyticsResponse": {
        "type": "object",
        "required": [
          "analytics",
          "authorization",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "analytics": {
            "type": "object",
            "required": [
              "agency_id",
              "period",
              "listing_metrics",
              "roster_metrics",
              "engagement_metrics",
              "response_metrics",
              "public_safety"
            ],
            "description": "Aggregate-only sandbox analytics for the current sandbox agency. Customer PII, contact fields, private notes, lead/client rows, and raw event logs are not returned.",
            "properties": {
              "agency_id": {
                "type": "string"
              },
              "period": {
                "type": "object",
                "required": [
                  "start_date",
                  "end_date",
                  "timezone"
                ],
                "properties": {
                  "start_date": {
                    "type": "string",
                    "format": "date"
                  },
                  "end_date": {
                    "type": "string",
                    "format": "date"
                  },
                  "timezone": {
                    "type": "string",
                    "enum": [
                      "Asia/Singapore"
                    ]
                  }
                }
              },
              "listing_metrics": {
                "type": "object",
                "required": [
                  "total_listings",
                  "active_listings",
                  "draft_listings",
                  "published_listings",
                  "public_listing_views",
                  "saved_listing_count",
                  "viewing_request_count"
                ],
                "properties": {
                  "total_listings": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "active_listings": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "draft_listings": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "published_listings": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "public_listing_views": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "saved_listing_count": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "viewing_request_count": {
                    "type": "integer",
                    "minimum": 0
                  }
                }
              },
              "roster_metrics": {
                "type": "object",
                "required": [
                  "total_agents",
                  "verified_agents",
                  "expired_agents",
                  "teams",
                  "branches",
                  "assistants"
                ],
                "properties": {
                  "total_agents": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "verified_agents": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "expired_agents": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "teams": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "branches": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "assistants": {
                    "type": "integer",
                    "minimum": 0
                  }
                }
              },
              "engagement_metrics": {
                "type": "object",
                "required": [
                  "agency_profile_views",
                  "listing_share_clicks",
                  "inquiry_clicks"
                ],
                "properties": {
                  "agency_profile_views": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "listing_share_clicks": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "inquiry_clicks": {
                    "type": "integer",
                    "minimum": 0
                  }
                }
              },
              "response_metrics": {
                "type": "object",
                "required": [
                  "median_first_response_minutes",
                  "sla_target_minutes",
                  "sla_met_rate"
                ],
                "properties": {
                  "median_first_response_minutes": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "sla_target_minutes": {
                    "type": "integer",
                    "minimum": 1
                  },
                  "sla_met_rate": {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 1
                  }
                }
              },
              "public_safety": {
                "type": "object",
                "required": [
                  "aggregate_only",
                  "customer_pii_returned",
                  "customer_contact_returned",
                  "private_notes_returned",
                  "raw_lead_rows_returned",
                  "raw_client_rows_returned",
                  "raw_event_logs_returned"
                ],
                "properties": {
                  "aggregate_only": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "customer_pii_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "customer_contact_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "private_notes_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_lead_rows_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_client_rows_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_event_logs_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              }
            }
          },
          "authorization": {
            "$ref": "#/components/schemas/CurrentAgencyRosterResponse/properties/authorization"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "CurrentAgencyAuditEventsResponse": {
        "type": "object",
        "required": [
          "audit_events",
          "authorization",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "audit_events": {
            "type": "object",
            "required": [
              "agency",
              "summary",
              "events",
              "public_safety"
            ],
            "description": "Sandbox-only redacted audit event summaries. Customer PII, contact fields, private notes, raw request payloads, raw response payloads, request headers, response bodies, IP addresses, user agents, API key digests, and live audit events are not returned.",
            "properties": {
              "agency": {
                "$ref": "#/components/schemas/CurrentAgencyRosterResponse/properties/roster/properties/agency"
              },
              "summary": {
                "type": "object",
                "required": [
                  "total_events",
                  "returned_events",
                  "redaction_version",
                  "live_events_included",
                  "raw_payloads_returned",
                  "request_headers_returned",
                  "response_bodies_returned",
                  "ip_addresses_returned",
                  "user_agents_returned",
                  "api_key_digests_returned",
                  "customer_pii_returned"
                ],
                "properties": {
                  "total_events": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "returned_events": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "redaction_version": {
                    "type": "integer",
                    "minimum": 1
                  },
                  "live_events_included": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_payloads_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "request_headers_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "response_bodies_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "ip_addresses_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "user_agents_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "api_key_digests_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "customer_pii_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              },
              "events": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "audit_event_id",
                    "occurred_at",
                    "category",
                    "action",
                    "outcome",
                    "scope",
                    "actor",
                    "resource",
                    "reason_code",
                    "metadata"
                  ],
                  "properties": {
                    "audit_event_id": {
                      "type": "string"
                    },
                    "occurred_at": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "category": {
                      "type": "string",
                      "enum": [
                        "agency_access",
                        "agency_delegation"
                      ]
                    },
                    "action": {
                      "type": "string"
                    },
                    "outcome": {
                      "type": "string",
                      "enum": [
                        "allowed",
                        "denied"
                      ]
                    },
                    "scope": {
                      "$ref": "#/components/schemas/PlatformScope"
                    },
                    "actor": {
                      "type": "object",
                      "required": [
                        "actor_type",
                        "actor_ref",
                        "delegated",
                        "subject_agent_ref"
                      ],
                      "properties": {
                        "actor_type": {
                          "type": "string",
                          "enum": [
                            "api_key"
                          ]
                        },
                        "actor_ref": {
                          "type": "string"
                        },
                        "delegated": {
                          "type": "boolean",
                          "enum": [
                            false
                          ]
                        },
                        "subject_agent_ref": {
                          "type": [
                            "string",
                            "null"
                          ]
                        }
                      }
                    },
                    "resource": {
                      "type": "object",
                      "required": [
                        "resource_type",
                        "resource_ref"
                      ],
                      "properties": {
                        "resource_type": {
                          "type": "string",
                          "enum": [
                            "agency",
                            "agent",
                            "listing"
                          ]
                        },
                        "resource_ref": {
                          "type": "string"
                        }
                      }
                    },
                    "reason_code": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "enum": [
                        "delegation_required",
                        null
                      ]
                    },
                    "metadata": {
                      "type": "object",
                      "required": [
                        "request_ref",
                        "route",
                        "redaction",
                        "livemode",
                        "customer_pii_returned",
                        "raw_payload_returned"
                      ],
                      "properties": {
                        "request_ref": {
                          "type": "string"
                        },
                        "route": {
                          "type": "string"
                        },
                        "redaction": {
                          "type": "string",
                          "enum": [
                            "public_safe"
                          ]
                        },
                        "livemode": {
                          "type": "boolean",
                          "enum": [
                            false
                          ]
                        },
                        "customer_pii_returned": {
                          "type": "boolean",
                          "enum": [
                            false
                          ]
                        },
                        "raw_payload_returned": {
                          "type": "boolean",
                          "enum": [
                            false
                          ]
                        }
                      }
                    }
                  }
                }
              },
              "public_safety": {
                "type": "object",
                "required": [
                  "synthetic_events_only",
                  "customer_pii_returned",
                  "customer_contact_returned",
                  "private_notes_returned",
                  "raw_request_payloads_returned",
                  "raw_response_payloads_returned",
                  "request_headers_returned",
                  "response_bodies_returned",
                  "ip_addresses_returned",
                  "user_agents_returned",
                  "api_key_digests_returned",
                  "delegated_impersonation_allowed"
                ],
                "properties": {
                  "synthetic_events_only": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "customer_pii_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "customer_contact_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "private_notes_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_request_payloads_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_response_payloads_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "request_headers_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "response_bodies_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "ip_addresses_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "user_agents_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "api_key_digests_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "delegated_impersonation_allowed": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              }
            }
          },
          "authorization": {
            "$ref": "#/components/schemas/CurrentAgencyRosterResponse/properties/authorization"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "CurrentAgencyIntegrationsResponse": {
        "type": "object",
        "required": [
          "integrations",
          "authorization",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "integrations": {
            "type": "object",
            "required": [
              "agency",
              "summary",
              "integrations",
              "public_safety"
            ],
            "description": "Sandbox-only agency integration metadata. CRM secrets, OAuth tokens, webhook secrets, raw sync payloads, contact fields, customer PII, and delegated impersonation controls are not returned.",
            "properties": {
              "agency": {
                "$ref": "#/components/schemas/CurrentAgencyRosterResponse/properties/roster/properties/agency"
              },
              "summary": {
                "type": "object",
                "required": [
                  "total_integrations",
                  "active_integrations",
                  "sandbox_only_integrations",
                  "delegated_impersonation_allowed",
                  "live_delivery_enabled",
                  "crm_secrets_returned",
                  "oauth_tokens_returned",
                  "webhook_secrets_returned",
                  "raw_sync_payloads_returned"
                ],
                "properties": {
                  "total_integrations": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "active_integrations": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "sandbox_only_integrations": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "delegated_impersonation_allowed": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "live_delivery_enabled": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "crm_secrets_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "oauth_tokens_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "webhook_secrets_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_sync_payloads_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              },
              "integrations": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "integration_client_id",
                    "name",
                    "category",
                    "status",
                    "scopes",
                    "allowed_actions",
                    "blocked_actions",
                    "delegated_impersonation_allowed",
                    "last_sync_status",
                    "last_sync_at",
                    "live_delivery_enabled"
                  ],
                  "properties": {
                    "integration_client_id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "category": {
                      "type": "string",
                      "enum": [
                        "crm"
                      ]
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "sandbox_only"
                      ]
                    },
                    "scopes": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/PlatformScope"
                      }
                    },
                    "allowed_actions": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "blocked_actions": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "delegated_impersonation_allowed": {
                      "type": "boolean",
                      "enum": [
                        false
                      ]
                    },
                    "last_sync_status": {
                      "type": "string",
                      "enum": [
                        "sandbox_fixture"
                      ]
                    },
                    "last_sync_at": {
                      "type": "null"
                    },
                    "live_delivery_enabled": {
                      "type": "boolean",
                      "enum": [
                        false
                      ]
                    }
                  }
                }
              },
              "public_safety": {
                "type": "object",
                "required": [
                  "contact_fields_returned",
                  "private_notes_returned",
                  "customer_pii_returned",
                  "raw_lead_data_returned",
                  "raw_client_data_returned",
                  "crm_secrets_returned",
                  "oauth_tokens_returned",
                  "webhook_secrets_returned",
                  "raw_sync_payloads_returned",
                  "delegated_impersonation_returned",
                  "write_controls_returned"
                ],
                "properties": {
                  "contact_fields_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "private_notes_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "customer_pii_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_lead_data_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_client_data_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "crm_secrets_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "oauth_tokens_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "webhook_secrets_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_sync_payloads_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "delegated_impersonation_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "write_controls_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              }
            }
          },
          "authorization": {
            "$ref": "#/components/schemas/CurrentAgencyRosterResponse/properties/authorization"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "CurrentAgencyLeadRoutingResponse": {
        "type": "object",
        "required": [
          "lead_routing",
          "authorization",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "lead_routing": {
            "type": "object",
            "required": [
              "agency",
              "summary",
              "queues",
              "routing_rules",
              "public_safety"
            ],
            "description": "Sandbox-only agency lead-routing queue metadata. Customer PII, contact fields, raw messages, private notes, owner contact, routing mutations, delegated impersonation controls, and live routing workflows are not returned.",
            "properties": {
              "agency": {
                "$ref": "#/components/schemas/CurrentAgencyRosterResponse/properties/roster/properties/agency"
              },
              "summary": {
                "type": "object",
                "required": [
                  "total_queues",
                  "open_lead_references",
                  "routed_lead_references",
                  "manual_review_references",
                  "live_routing_enabled",
                  "routing_mutations_enabled",
                  "contact_fields_returned",
                  "raw_messages_returned",
                  "customer_pii_returned"
                ],
                "properties": {
                  "total_queues": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "open_lead_references": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "routed_lead_references": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "manual_review_references": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "live_routing_enabled": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "routing_mutations_enabled": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "contact_fields_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_messages_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "customer_pii_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              },
              "queues": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "queue_id",
                    "name",
                    "status",
                    "branch_id",
                    "team_id",
                    "lead_references",
                    "lead_count",
                    "oldest_lead_age_minutes",
                    "allowed_actions",
                    "blocked_actions"
                  ],
                  "properties": {
                    "queue_id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "sandbox_only"
                      ]
                    },
                    "branch_id": {
                      "type": "string"
                    },
                    "team_id": {
                      "type": "string"
                    },
                    "lead_references": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "lead_count": {
                      "type": "integer",
                      "minimum": 0
                    },
                    "oldest_lead_age_minutes": {
                      "type": "integer",
                      "minimum": 0
                    },
                    "allowed_actions": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "blocked_actions": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              },
              "routing_rules": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "rule_id",
                    "name",
                    "status",
                    "match_type",
                    "target_team_id",
                    "target_agent_id",
                    "priority",
                    "live_routing_enabled",
                    "allowed_actions",
                    "blocked_actions"
                  ],
                  "properties": {
                    "rule_id": {
                      "type": "string"
                    },
                    "name": {
                      "type": "string"
                    },
                    "status": {
                      "type": "string",
                      "enum": [
                        "sandbox_only"
                      ]
                    },
                    "match_type": {
                      "type": "string",
                      "enum": [
                        "property_region",
                        "manual_review"
                      ]
                    },
                    "target_team_id": {
                      "type": "string"
                    },
                    "target_agent_id": {
                      "type": "null"
                    },
                    "priority": {
                      "type": "integer",
                      "minimum": 0
                    },
                    "live_routing_enabled": {
                      "type": "boolean",
                      "enum": [
                        false
                      ]
                    },
                    "allowed_actions": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "blocked_actions": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              },
              "public_safety": {
                "type": "object",
                "required": [
                  "lead_references_redacted",
                  "contact_fields_returned",
                  "customer_pii_returned",
                  "customer_contact_returned",
                  "raw_messages_returned",
                  "private_notes_returned",
                  "owner_contact_returned",
                  "routing_mutations_returned",
                  "delegated_impersonation_returned",
                  "write_controls_returned"
                ],
                "properties": {
                  "lead_references_redacted": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "contact_fields_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "customer_pii_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "customer_contact_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_messages_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "private_notes_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "owner_contact_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "routing_mutations_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "delegated_impersonation_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "write_controls_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              }
            }
          },
          "authorization": {
            "$ref": "#/components/schemas/CurrentAgencyRosterResponse/properties/authorization"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "CurrentAgencyListingsResponse": {
        "type": "object",
        "required": [
          "listings",
          "pagination",
          "portfolio_summary",
          "authorization",
          "principal",
          "public_safety",
          "livemode",
          "request_id"
        ],
        "properties": {
          "listings": {
            "type": "array",
            "description": "Public-safe sandbox agency listing portfolio rows. Owner contact, source-agent contact metadata, private notes, routing data, distribution controls, raw CRM data, and write controls are not returned.",
            "items": {
              "$ref": "#/components/schemas/AgencyListingPortfolioRow"
            }
          },
          "pagination": {
            "type": "object",
            "required": [
              "limit",
              "next_cursor"
            ],
            "properties": {
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              },
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "portfolio_summary": {
            "type": "object",
            "required": [
              "total",
              "active",
              "draft",
              "expired_agent_owned",
              "delegated_actions_enabled",
              "write_controls_returned"
            ],
            "properties": {
              "total": {
                "type": "integer",
                "minimum": 0
              },
              "active": {
                "type": "integer",
                "minimum": 0
              },
              "draft": {
                "type": "integer",
                "minimum": 0
              },
              "expired_agent_owned": {
                "type": "integer",
                "minimum": 0
              },
              "delegated_actions_enabled": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "write_controls_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "authorization": {
            "$ref": "#/components/schemas/CurrentAgencyRosterResponse/properties/authorization"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "public_safety": {
            "type": "object",
            "required": [
              "listing_fields",
              "private_notes_returned",
              "owner_contact_returned",
              "source_agent_contact_returned",
              "routing_data_returned",
              "distribution_controls_returned",
              "raw_crm_data_returned"
            ],
            "properties": {
              "listing_fields": {
                "type": "string",
                "enum": [
                  "public_safe"
                ]
              },
              "private_notes_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "owner_contact_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "source_agent_contact_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "routing_data_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "distribution_controls_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_crm_data_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "AgencyListingPortfolioRow": {
        "type": "object",
        "required": [
          "id",
          "title",
          "property_type",
          "district",
          "approximate_location",
          "price",
          "bedrooms",
          "bathrooms",
          "square_feet",
          "public_media_url",
          "source_updated_at",
          "freshness_status",
          "livemode",
          "agency_listing_status",
          "publish_state",
          "distribution_state",
          "team_ids",
          "allowed_actions",
          "blocked_actions",
          "owner_agent",
          "branch",
          "ownership"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "property_type": {
            "type": "string"
          },
          "district": {
            "type": "string"
          },
          "approximate_location": {
            "type": "string"
          },
          "price": {
            "type": "integer",
            "minimum": 0
          },
          "bedrooms": {
            "type": "integer",
            "minimum": 0
          },
          "bathrooms": {
            "type": "integer",
            "minimum": 0
          },
          "square_feet": {
            "type": "integer",
            "minimum": 1
          },
          "public_media_url": {
            "type": "string",
            "format": "uri"
          },
          "source_updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "freshness_status": {
            "type": "string",
            "enum": [
              "fresh",
              "stale",
              "unknown"
            ]
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "agency_listing_status": {
            "type": "string",
            "enum": [
              "active",
              "draft"
            ]
          },
          "publish_state": {
            "type": "string",
            "enum": [
              "published",
              "draft"
            ]
          },
          "distribution_state": {
            "type": "string",
            "enum": [
              "active",
              "unpublished"
            ]
          },
          "team_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "allowed_actions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "blocked_actions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "owner_agent": {
            "type": "object",
            "required": [
              "agent_id",
              "display_name",
              "cea_registration_number",
              "cea_status",
              "singpass_verified"
            ],
            "properties": {
              "agent_id": {
                "type": "string"
              },
              "display_name": {
                "type": "string"
              },
              "cea_registration_number": {
                "type": "string"
              },
              "cea_status": {
                "type": "string",
                "enum": [
                  "verified",
                  "expired"
                ]
              },
              "singpass_verified": {
                "type": "boolean"
              }
            }
          },
          "branch": {
            "$ref": "#/components/schemas/AgencyTeamBranch"
          },
          "ownership": {
            "type": "object",
            "required": [
              "agency_id",
              "source",
              "delegated"
            ],
            "properties": {
              "agency_id": {
                "type": "string"
              },
              "source": {
                "type": "string",
                "enum": [
                  "sandbox_fixture"
                ]
              },
              "delegated": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          }
        }
      },
      "CurrentAgencyMembersResponse": {
        "type": "object",
        "required": [
          "members",
          "authorization",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "members": {
            "type": "object",
            "required": [
              "agency",
              "summary",
              "agents",
              "assistants",
              "public_safety"
            ],
            "description": "Public-safe sandbox agency member summaries. Contact fields, private notes, raw lead data, raw client data, identity documents, subscription receipts, billing identifiers, delegated impersonation, and write controls are not returned.",
            "properties": {
              "agency": {
                "$ref": "#/components/schemas/CurrentAgencyRosterResponse/properties/roster/properties/agency"
              },
              "summary": {
                "type": "object",
                "required": [
                  "total_members",
                  "agents",
                  "assistants",
                  "verified_agents",
                  "expired_agents",
                  "delegated_members",
                  "contact_fields_returned",
                  "private_notes_returned"
                ],
                "properties": {
                  "total_members": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "agents": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "assistants": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "verified_agents": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "expired_agents": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "delegated_members": {
                    "type": "integer",
                    "enum": [
                      0
                    ]
                  },
                  "contact_fields_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "private_notes_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              },
              "agents": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AgencyAgentMember"
                }
              },
              "assistants": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/AgencyAssistantMember"
                }
              },
              "public_safety": {
                "type": "object",
                "required": [
                  "contact_fields_returned",
                  "private_notes_returned",
                  "raw_lead_data_returned",
                  "raw_client_data_returned",
                  "identity_documents_returned",
                  "subscription_receipts_returned",
                  "billing_identifiers_returned",
                  "delegated_impersonation_returned",
                  "write_controls_returned"
                ],
                "properties": {
                  "contact_fields_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "private_notes_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_lead_data_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_client_data_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "identity_documents_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "subscription_receipts_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "billing_identifiers_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "delegated_impersonation_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "write_controls_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              }
            }
          },
          "authorization": {
            "$ref": "#/components/schemas/CurrentAgencyRosterResponse/properties/authorization"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "AgencyAgentMember": {
        "type": "object",
        "required": [
          "member_type",
          "agent_id",
          "display_name",
          "cea_registration_number",
          "cea_status",
          "singpass_verified",
          "branch",
          "team_ids",
          "role",
          "delegated",
          "allowed_actions",
          "blocked_actions"
        ],
        "properties": {
          "member_type": {
            "type": "string",
            "enum": [
              "agent"
            ]
          },
          "agent_id": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "cea_registration_number": {
            "type": "string"
          },
          "cea_status": {
            "type": "string",
            "enum": [
              "verified",
              "expired"
            ]
          },
          "singpass_verified": {
            "type": "boolean"
          },
          "branch": {
            "$ref": "#/components/schemas/AgencyTeamBranch"
          },
          "team_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "role": {
            "type": "string",
            "enum": [
              "salesperson"
            ]
          },
          "delegated": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "allowed_actions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "blocked_actions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "AgencyAssistantMember": {
        "type": "object",
        "required": [
          "member_type",
          "assistant_id",
          "display_role",
          "assigned_team_ids",
          "delegated",
          "allowed_actions",
          "blocked_actions"
        ],
        "properties": {
          "member_type": {
            "type": "string",
            "enum": [
              "assistant"
            ]
          },
          "assistant_id": {
            "type": "string"
          },
          "display_role": {
            "type": "string",
            "enum": [
              "operations_assistant",
              "crm_assistant"
            ]
          },
          "assigned_team_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "delegated": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "allowed_actions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "blocked_actions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "AgencyTeamBranch": {
        "type": "object",
        "required": [
          "branch_id",
          "name",
          "region"
        ],
        "properties": {
          "branch_id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "region": {
            "type": "string",
            "enum": [
              "central",
              "east"
            ]
          }
        }
      },
      "PlatformBankApplicationState": {
        "type": "string",
        "enum": [
          "missing_document",
          "approved",
          "rejected"
        ]
      },
      "PlatformBankApplicationSummary": {
        "type": "object",
        "required": [
          "id",
          "sandbox_fixture_id",
          "application_state",
          "bank_display_name",
          "borrower_reference",
          "consent_text_version",
          "document_manifest_required",
          "raw_application_data_exposed",
          "livemode",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "sandbox_fixture_id": {
            "type": "string"
          },
          "application_state": {
            "$ref": "#/components/schemas/PlatformBankApplicationState"
          },
          "bank_display_name": {
            "type": "string"
          },
          "borrower_reference": {
            "type": "string"
          },
          "consent_text_version": {
            "type": "string"
          },
          "document_manifest_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "raw_application_data_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformBankApplicationStatus": {
        "type": "object",
        "required": [
          "application_state",
          "safe_display_label",
          "borrower_action_required",
          "next_action",
          "document_manifest_available",
          "callback_requested",
          "live_bank_system_synced"
        ],
        "properties": {
          "application_state": {
            "$ref": "#/components/schemas/PlatformBankApplicationState"
          },
          "safe_display_label": {
            "type": "string"
          },
          "borrower_action_required": {
            "type": "boolean"
          },
          "next_action": {
            "type": "string",
            "enum": [
              "upload_required_documents",
              "await_bank_review",
              "application_closed"
            ]
          },
          "document_manifest_available": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "callback_requested": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "live_bank_system_synced": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "PlatformBankApplicationStatusTransition": {
        "type": "object",
        "required": [
          "previous_application_state",
          "requested_application_state",
          "effective_application_state",
          "status_update_dry_run",
          "status_persisted",
          "bank_system_write_performed",
          "provider_call_performed",
          "callback_requested",
          "live_bank_system_synced"
        ],
        "properties": {
          "previous_application_state": {
            "$ref": "#/components/schemas/PlatformBankApplicationState"
          },
          "requested_application_state": {
            "$ref": "#/components/schemas/PlatformBankApplicationState"
          },
          "effective_application_state": {
            "$ref": "#/components/schemas/PlatformBankApplicationState"
          },
          "status_update_dry_run": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "status_persisted": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "bank_system_write_performed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "provider_call_performed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "callback_requested": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "live_bank_system_synced": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "PlatformBankApplicationListItem": {
        "type": "object",
        "required": [
          "application",
          "status"
        ],
        "properties": {
          "application": {
            "$ref": "#/components/schemas/PlatformBankApplicationSummary"
          },
          "status": {
            "$ref": "#/components/schemas/PlatformBankApplicationStatus"
          }
        }
      },
      "PlatformBankApplicationBoundary": {
        "type": "object",
        "required": [
          "sandbox_only",
          "status_metadata_only",
          "bank_secrets_redacted",
          "raw_application_data_redacted",
          "raw_myinfo_redacted",
          "credit_bureau_data_redacted",
          "raw_document_contents_redacted",
          "nric_fin_redacted",
          "income_proof_contents_redacted",
          "bank_statement_contents_redacted",
          "application_create_dry_run",
          "application_persisted",
          "provider_submission_deferred",
          "application_write_deferred",
          "status_write_deferred",
          "callback_delivery_deferred"
        ],
        "properties": {
          "sandbox_only": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "status_metadata_only": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "bank_secrets_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "raw_application_data_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "raw_myinfo_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "credit_bureau_data_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "raw_document_contents_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "nric_fin_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "income_proof_contents_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "bank_statement_contents_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "application_create_dry_run": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "provider_submission_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "application_write_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "status_write_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "callback_delivery_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "application_persisted": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "PlatformBankApplicationCreateRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "borrower_fixture_id": {
            "type": "string",
            "enum": [
              "eligible_borrower",
              "ineligible_borrower"
            ]
          },
          "product_code": {
            "type": "string",
            "enum": [
              "SANDBOX_FIXED_HOME",
              "SANDBOX_SORA_HOME"
            ]
          },
          "consent_text_version": {
            "type": "string",
            "enum": [
              "bank-sandbox-v1"
            ]
          }
        }
      },
      "PlatformBankApplicationStatusUpdateRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "application_state"
        ],
        "properties": {
          "application_state": {
            "$ref": "#/components/schemas/PlatformBankApplicationState"
          }
        }
      },
      "PlatformBankApplicationIntake": {
        "type": "object",
        "required": [
          "borrower_fixture_id",
          "product_code",
          "consent_text_version",
          "consent_categories",
          "document_manifest_next_action",
          "application_create_dry_run",
          "application_persisted",
          "submitted_to_bank",
          "provider_call_performed",
          "raw_borrower_data_exposed",
          "livemode"
        ],
        "properties": {
          "borrower_fixture_id": {
            "type": "string",
            "enum": [
              "eligible_borrower",
              "ineligible_borrower"
            ]
          },
          "product_code": {
            "type": "string",
            "enum": [
              "SANDBOX_FIXED_HOME",
              "SANDBOX_SORA_HOME"
            ]
          },
          "consent_text_version": {
            "type": "string",
            "enum": [
              "bank-sandbox-v1"
            ]
          },
          "consent_categories": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "eligibility_summary",
                "document_manifest_metadata"
              ]
            },
            "minItems": 2,
            "maxItems": 2
          },
          "document_manifest_next_action": {
            "type": "string",
            "enum": [
              "review_document_requirements"
            ]
          },
          "application_create_dry_run": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "application_persisted": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "submitted_to_bank": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "provider_call_performed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_borrower_data_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "PlatformMortgageBankPreparedAction": {
        "type": "object",
        "required": [
          "action_id",
          "status",
          "required_scope",
          "required_confirmation",
          "idempotency_required",
          "expires_at",
          "side_effects",
          "consent_boundary",
          "safety",
          "continuation",
          "principal"
        ],
        "properties": {
          "action_id": {
            "type": "string",
            "maxLength": 192
          },
          "status": {
            "type": "string",
            "enum": [
              "prepared"
            ]
          },
          "required_scope": {
            "type": "string",
            "enum": [
              "banks.applications.write"
            ]
          },
          "required_confirmation": {
            "type": "string",
            "enum": [
              "first_party_app"
            ]
          },
          "idempotency_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          },
          "side_effects": {
            "type": "object",
            "required": [
              "prepared_action_created",
              "action_prepared_event_created",
              "application_persisted",
              "bank_system_write_performed",
              "callback_delivered",
              "raw_application_data_exposed",
              "raw_myinfo_exposed",
              "raw_document_contents_exposed"
            ],
            "properties": {
              "prepared_action_created": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "action_prepared_event_created": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "application_persisted": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "bank_system_write_performed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "callback_delivered": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_application_data_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_myinfo_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_document_contents_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "consent_boundary": {
            "type": "object",
            "required": [
              "consent_text_version",
              "consent_categories",
              "document_manifest_metadata_only",
              "signed_document_handoff_available"
            ],
            "properties": {
              "consent_text_version": {
                "type": "string",
                "enum": [
                  "bank-sandbox-v1"
                ]
              },
              "consent_categories": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "eligibility_summary",
                    "document_manifest_metadata"
                  ]
                },
                "minItems": 2,
                "maxItems": 2
              },
              "document_manifest_metadata_only": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "signed_document_handoff_available": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "safety": {
            "type": "object",
            "required": [
              "delegated",
              "api_confirmation_allowed",
              "api_rejection_allowed"
            ],
            "properties": {
              "delegated": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "api_confirmation_allowed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "api_rejection_allowed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "continuation": {
            "type": "object",
            "required": [
              "url",
              "handoff_required",
              "reason"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "handoff_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "reason": {
                "type": "string",
                "enum": [
                  "first_party_confirmation_required"
                ]
              }
            }
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          }
        }
      },
      "PlatformBankApplicationCreateResponse": {
        "type": "object",
        "required": [
          "application",
          "status",
          "application_intake",
          "application_boundary",
          "side_effects",
          "idempotency_key_hash",
          "livemode",
          "request_id"
        ],
        "properties": {
          "application": {
            "$ref": "#/components/schemas/PlatformBankApplicationSummary"
          },
          "prepared_action": {
            "$ref": "#/components/schemas/PlatformMortgageBankPreparedAction"
          },
          "status": {
            "$ref": "#/components/schemas/PlatformBankApplicationStatus"
          },
          "application_intake": {
            "$ref": "#/components/schemas/PlatformBankApplicationIntake"
          },
          "application_boundary": {
            "$ref": "#/components/schemas/PlatformBankApplicationBoundary"
          },
          "side_effects": {
            "$ref": "#/components/schemas/PlatformBankSandboxSideEffects"
          },
          "idempotency_key_hash": {
            "type": "string"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformBankApplicationStatusResponse": {
        "type": "object",
        "required": [
          "application",
          "status",
          "application_boundary",
          "side_effects",
          "livemode",
          "request_id"
        ],
        "properties": {
          "application": {
            "$ref": "#/components/schemas/PlatformBankApplicationSummary"
          },
          "status": {
            "$ref": "#/components/schemas/PlatformBankApplicationStatus"
          },
          "application_boundary": {
            "$ref": "#/components/schemas/PlatformBankApplicationBoundary"
          },
          "side_effects": {
            "$ref": "#/components/schemas/PlatformBankSandboxSideEffects"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformBankApplicationStatusUpdateResponse": {
        "type": "object",
        "required": [
          "application",
          "status",
          "status_transition",
          "application_boundary",
          "side_effects",
          "idempotency_key_hash",
          "livemode",
          "request_id"
        ],
        "properties": {
          "application": {
            "$ref": "#/components/schemas/PlatformBankApplicationSummary"
          },
          "status": {
            "$ref": "#/components/schemas/PlatformBankApplicationStatus"
          },
          "status_transition": {
            "$ref": "#/components/schemas/PlatformBankApplicationStatusTransition"
          },
          "application_boundary": {
            "$ref": "#/components/schemas/PlatformBankApplicationBoundary"
          },
          "side_effects": {
            "$ref": "#/components/schemas/PlatformBankSandboxSideEffects"
          },
          "idempotency_key_hash": {
            "type": "string"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformBankApplicationListResponse": {
        "type": "object",
        "required": [
          "applications",
          "application_boundary",
          "application_count",
          "side_effects",
          "livemode",
          "request_id"
        ],
        "properties": {
          "applications": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformBankApplicationListItem"
            }
          },
          "application_boundary": {
            "$ref": "#/components/schemas/PlatformBankApplicationBoundary"
          },
          "application_count": {
            "type": "integer",
            "minimum": 0
          },
          "side_effects": {
            "$ref": "#/components/schemas/PlatformBankSandboxSideEffects"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformBankCallbackAction": {
        "type": "string",
        "enum": [
          "request_banker_callback",
          "test_delivery"
        ]
      },
      "PlatformBankCallbackDeliveryState": {
        "type": "string",
        "enum": [
          "dry_run_not_delivered",
          "deferred_until_live_callback_promotion"
        ]
      },
      "PlatformBankCallbackRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "action": {
            "$ref": "#/components/schemas/PlatformBankCallbackAction"
          },
          "application_id": {
            "type": "string"
          }
        }
      },
      "PlatformBankCallbackSummary": {
        "type": "object",
        "required": [
          "id",
          "sandbox_fixture_id",
          "action",
          "application_id",
          "event_type",
          "delivery_state",
          "safe_display_label",
          "signed_payload_required",
          "replay_protection_required",
          "idempotency_key_required",
          "idempotency_key_hash",
          "redacted_payload_only",
          "raw_payload_exposed",
          "signing_secret_exposed",
          "livemode",
          "created_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "sandbox_fixture_id": {
            "type": "string"
          },
          "action": {
            "$ref": "#/components/schemas/PlatformBankCallbackAction"
          },
          "application_id": {
            "type": "string"
          },
          "event_type": {
            "type": "string",
            "enum": [
              "bank.callback_requested",
              "bank.callback_failed"
            ]
          },
          "delivery_state": {
            "$ref": "#/components/schemas/PlatformBankCallbackDeliveryState"
          },
          "safe_display_label": {
            "type": "string"
          },
          "signed_payload_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "replay_protection_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "idempotency_key_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "redacted_payload_only": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "idempotency_key_hash": {
            "type": "string",
            "description": "Redacted sha256 hash of the supplied Idempotency-Key."
          },
          "raw_payload_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "signing_secret_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformBankCallbackBoundary": {
        "type": "object",
        "required": [
          "sandbox_only",
          "callback_metadata_only",
          "callback_delivery_enabled",
          "live_callback_delivery_deferred",
          "bank_secrets_redacted",
          "signing_secret_redacted",
          "raw_payload_redacted",
          "request_response_bodies_redacted",
          "borrower_contact_redacted",
          "customer_pii_redacted",
          "provider_call_deferred",
          "bank_system_write_deferred",
          "application_write_deferred",
          "mtls_deferred",
          "api_gateway_custom_domain_deferred"
        ],
        "properties": {
          "sandbox_only": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "callback_metadata_only": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "live_callback_delivery_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "bank_secrets_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "signing_secret_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "raw_payload_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "request_response_bodies_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "borrower_contact_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "customer_pii_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "provider_call_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "bank_system_write_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "application_write_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "mtls_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "api_gateway_custom_domain_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "callback_delivery_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "PlatformBankCallbackResponse": {
        "type": "object",
        "required": [
          "callback",
          "callback_boundary",
          "side_effects",
          "livemode",
          "request_id"
        ],
        "properties": {
          "callback": {
            "$ref": "#/components/schemas/PlatformBankCallbackSummary"
          },
          "callback_boundary": {
            "$ref": "#/components/schemas/PlatformBankCallbackBoundary"
          },
          "side_effects": {
            "$ref": "#/components/schemas/PlatformBankSandboxSideEffects"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformBankEligibilityBorrowerFixtureId": {
        "type": "string",
        "enum": [
          "eligible_borrower",
          "ineligible_borrower"
        ]
      },
      "PlatformBankEligibilityResult": {
        "type": "string",
        "enum": [
          "eligible",
          "ineligible"
        ]
      },
      "PlatformBankEligibilityRequest": {
        "type": "object",
        "properties": {
          "borrower_fixture_id": {
            "$ref": "#/components/schemas/PlatformBankEligibilityBorrowerFixtureId"
          }
        },
        "additionalProperties": false,
        "description": "Sandbox-only eligibility check selector. Omit borrower_fixture_id to use the eligible sandbox borrower fixture."
      },
      "PlatformBankEligibilitySummary": {
        "type": "object",
        "required": [
          "id",
          "sandbox_fixture_id",
          "result",
          "safe_display_label",
          "eligible_product_codes",
          "maximum_loan_amount_sgd",
          "minimum_cash_downpayment_percent",
          "next_action",
          "consent_text_version",
          "raw_borrower_data_exposed",
          "livemode",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "sandbox_fixture_id": {
            "$ref": "#/components/schemas/PlatformBankEligibilityBorrowerFixtureId"
          },
          "result": {
            "$ref": "#/components/schemas/PlatformBankEligibilityResult"
          },
          "safe_display_label": {
            "type": "string"
          },
          "eligible_product_codes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "maximum_loan_amount_sgd": {
            "type": "integer",
            "minimum": 0
          },
          "minimum_cash_downpayment_percent": {
            "type": "number",
            "minimum": 0
          },
          "next_action": {
            "type": "string",
            "enum": [
              "continue_application",
              "review_financing_options"
            ]
          },
          "consent_text_version": {
            "type": "string"
          },
          "raw_borrower_data_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformBankEligibilityBoundary": {
        "type": "object",
        "required": [
          "sandbox_only",
          "eligibility_summary_only",
          "financial_conduct_boundary_enforced",
          "advice_like_recommendations_deferred",
          "live_bank_decisioning_deferred",
          "bank_secrets_redacted",
          "raw_myinfo_redacted",
          "full_financial_profile_redacted",
          "credit_bureau_data_redacted",
          "bank_statement_contents_redacted",
          "raw_document_contents_redacted",
          "borrower_personal_identifiers_redacted",
          "borrower_specific_pricing_deferred",
          "live_quote_generation_deferred",
          "application_create_deferred",
          "callback_delivery_deferred"
        ],
        "properties": {
          "sandbox_only": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "eligibility_summary_only": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "financial_conduct_boundary_enforced": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "advice_like_recommendations_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "live_bank_decisioning_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "bank_secrets_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "raw_myinfo_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "full_financial_profile_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "credit_bureau_data_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "bank_statement_contents_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "raw_document_contents_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "borrower_personal_identifiers_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "borrower_specific_pricing_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "live_quote_generation_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "application_create_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "callback_delivery_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          }
        }
      },
      "PlatformBankEligibilityConsent": {
        "type": "object",
        "required": [
          "consent_text_version",
          "data_category",
          "purpose",
          "consent_text_version_required",
          "raw_myinfo_exposed",
          "full_financial_profile_exposed"
        ],
        "properties": {
          "consent_text_version": {
            "type": "string"
          },
          "data_category": {
            "type": "string",
            "enum": [
              "eligibility_summary"
            ]
          },
          "purpose": {
            "type": "string",
            "enum": [
              "mortgage_application_or_refinance_assessment"
            ]
          },
          "consent_text_version_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "raw_myinfo_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "full_financial_profile_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "PlatformBankEligibilityResponse": {
        "type": "object",
        "required": [
          "eligibility",
          "eligibility_boundary",
          "consent",
          "side_effects",
          "livemode",
          "request_id"
        ],
        "properties": {
          "eligibility": {
            "$ref": "#/components/schemas/PlatformBankEligibilitySummary"
          },
          "eligibility_boundary": {
            "$ref": "#/components/schemas/PlatformBankEligibilityBoundary"
          },
          "consent": {
            "$ref": "#/components/schemas/PlatformBankEligibilityConsent"
          },
          "side_effects": {
            "$ref": "#/components/schemas/PlatformBankSandboxSideEffects"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformBankFrontendDeploymentMode": {
        "type": "string",
        "enum": [
          "bank_hosted_frontend",
          "homejourney_hosted_white_label"
        ]
      },
      "PlatformBankFrontendDataCategory": {
        "type": "string",
        "enum": [
          "borrower_contact_summary",
          "eligibility_summary",
          "product_rate_summary",
          "application_status",
          "document_manifest_metadata"
        ]
      },
      "PlatformBankFrontendStaffRole": {
        "type": "string",
        "enum": [
          "relationship_manager",
          "checker"
        ]
      },
      "PlatformBankProductType": {
        "type": "string",
        "enum": [
          "fixed_rate_home_loan",
          "floating_rate_home_loan"
        ]
      },
      "PlatformBankProductRateType": {
        "type": "string",
        "enum": [
          "fixed",
          "sora_pegged"
        ]
      },
      "PlatformBankSupportedPropertyType": {
        "type": "string",
        "enum": [
          "hdb",
          "executive_condominium",
          "private_residential"
        ]
      },
      "PlatformBankSandboxSideEffects": {
        "type": "object",
        "required": [
          "live_callback_sent",
          "email_sent",
          "sms_sent",
          "whatsapp_sent",
          "document_link_sent",
          "bank_system_write_performed",
          "payment_event_created",
          "production_webhook_sent"
        ],
        "properties": {
          "live_callback_sent": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "email_sent": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "sms_sent": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "whatsapp_sent": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "document_link_sent": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "bank_system_write_performed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_event_created": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "production_webhook_sent": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "PlatformBankFrontendDeployment": {
        "type": "object",
        "required": [
          "mode",
          "sandbox_fixture_id",
          "enabled",
          "status",
          "public_config_only",
          "route_prefix"
        ],
        "properties": {
          "mode": {
            "$ref": "#/components/schemas/PlatformBankFrontendDeploymentMode"
          },
          "sandbox_fixture_id": {
            "type": "string"
          },
          "enabled": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "sandbox_ready"
            ]
          },
          "public_config_only": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "route_prefix": {
            "type": "string"
          }
        }
      },
      "PlatformBankFrontendConfig": {
        "type": "object",
        "required": [
          "id",
          "sandbox_fixture_id",
          "display_name",
          "environment",
          "supported_deployment_modes",
          "widget_security",
          "consent",
          "staff_boundary",
          "document_manifest_boundary",
          "callback_contract",
          "enterprise_ingress",
          "data_minimization",
          "side_effects",
          "livemode",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "sandbox_fixture_id": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "environment": {
            "type": "string",
            "enum": [
              "sandbox"
            ]
          },
          "supported_deployment_modes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformBankFrontendDeployment"
            }
          },
          "widget_security": {
            "$ref": "#/components/schemas/PlatformBankWidgetSecurity"
          },
          "consent": {
            "$ref": "#/components/schemas/PlatformBankFrontendConsentBoundary"
          },
          "staff_boundary": {
            "$ref": "#/components/schemas/PlatformBankFrontendStaffBoundary"
          },
          "document_manifest_boundary": {
            "$ref": "#/components/schemas/PlatformBankDocumentManifestBoundary"
          },
          "callback_contract": {
            "$ref": "#/components/schemas/PlatformBankCallbackContract"
          },
          "enterprise_ingress": {
            "$ref": "#/components/schemas/PlatformBankEnterpriseIngress"
          },
          "data_minimization": {
            "$ref": "#/components/schemas/PlatformBankDataMinimizationBoundary"
          },
          "side_effects": {
            "$ref": "#/components/schemas/PlatformBankSandboxSideEffects"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformBankWidgetSecurity": {
        "type": "object",
        "required": [
          "signed_widget_id_required",
          "allowed_origins_required",
          "scoped_cors_required",
          "allowed_origins",
          "bank_secrets_in_browser_config"
        ],
        "properties": {
          "signed_widget_id_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "allowed_origins_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "scoped_cors_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "allowed_origins": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uri"
            }
          },
          "bank_secrets_in_browser_config": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "PlatformBankFrontendConsentBoundary": {
        "type": "object",
        "required": [
          "consent_text_version",
          "data_categories",
          "purpose",
          "expiry_required",
          "revocation_supported",
          "raw_myinfo_exposed",
          "full_financial_profile_exposed"
        ],
        "properties": {
          "consent_text_version": {
            "type": "string"
          },
          "data_categories": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformBankFrontendDataCategory"
            }
          },
          "purpose": {
            "type": "string",
            "enum": [
              "mortgage_application_or_refinance_assessment"
            ]
          },
          "expiry_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "revocation_supported": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "raw_myinfo_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "full_financial_profile_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "PlatformBankFrontendStaffBoundary": {
        "type": "object",
        "required": [
          "borrower_token_staff_actions_allowed",
          "partner_identity_required",
          "supported_roles"
        ],
        "properties": {
          "borrower_token_staff_actions_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "partner_identity_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "supported_roles": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformBankFrontendStaffRole"
            }
          }
        }
      },
      "PlatformBankDocumentManifestBoundary": {
        "type": "object",
        "required": [
          "signed_handoff_url_required",
          "raw_document_contents_exposed",
          "income_proof_exposed",
          "bank_statement_exposed",
          "credit_bureau_data_exposed",
          "nric_fin_exposed"
        ],
        "properties": {
          "signed_handoff_url_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "raw_document_contents_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "income_proof_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "bank_statement_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credit_bureau_data_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "nric_fin_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "PlatformBankCallbackContract": {
        "type": "object",
        "required": [
          "signed_payload_required",
          "replay_protection_required",
          "idempotency_keys_required",
          "callback_delivery_enabled",
          "supported_events"
        ],
        "properties": {
          "signed_payload_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "replay_protection_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "idempotency_keys_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "callback_delivery_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "supported_events": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "bank.application_created",
                "bank.document_requested",
                "bank.document_uploaded",
                "bank.application_submitted",
                "bank.status_changed",
                "bank.approval_pending",
                "bank.approval_rejected",
                "bank.approval_accepted",
                "bank.callback_requested",
                "bank.callback_failed"
              ]
            }
          }
        }
      },
      "PlatformBankEnterpriseIngress": {
        "type": "object",
        "required": [
          "mtls",
          "ip_allowlist",
          "private_ingress",
          "api_gateway_custom_domain",
          "tofu_required"
        ],
        "properties": {
          "mtls": {
            "type": "string",
            "enum": [
              "deferred"
            ]
          },
          "ip_allowlist": {
            "type": "string",
            "enum": [
              "deferred"
            ]
          },
          "private_ingress": {
            "type": "string",
            "enum": [
              "deferred"
            ]
          },
          "api_gateway_custom_domain": {
            "type": "string",
            "enum": [
              "deferred"
            ]
          },
          "tofu_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          }
        }
      },
      "PlatformBankDataMinimizationBoundary": {
        "type": "object",
        "required": [
          "raw_myinfo_exposed",
          "credit_bureau_data_exposed",
          "bank_statement_exposed",
          "raw_document_contents_exposed",
          "nric_fin_exposed",
          "income_proof_exposed",
          "bank_secrets_exposed"
        ],
        "properties": {
          "raw_myinfo_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credit_bureau_data_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "bank_statement_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_document_contents_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "nric_fin_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "income_proof_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "bank_secrets_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "PlatformBankFrontendBoundary": {
        "type": "object",
        "required": [
          "sandbox_only",
          "live_promotion_required",
          "financial_conduct_boundary_enforced",
          "advice_like_recommendations_deferred",
          "live_bank_decisioning_deferred",
          "private_pilot_status_posture",
          "bank_secrets_redacted",
          "raw_borrower_data_redacted",
          "staff_actions_deferred",
          "callback_delivery_deferred",
          "document_handoff_deferred",
          "enterprise_ingress_deferred"
        ],
        "properties": {
          "sandbox_only": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "live_promotion_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "financial_conduct_boundary_enforced": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "advice_like_recommendations_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "live_bank_decisioning_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "bank_secrets_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "raw_borrower_data_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "staff_actions_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "callback_delivery_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "document_handoff_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "enterprise_ingress_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "private_pilot_status_posture": {
            "type": "string",
            "enum": [
              "private_first"
            ]
          }
        }
      },
      "PlatformBankFrontendConfigResponse": {
        "type": "object",
        "required": [
          "frontend_config",
          "frontend_boundary",
          "livemode",
          "request_id"
        ],
        "properties": {
          "frontend_config": {
            "$ref": "#/components/schemas/PlatformBankFrontendConfig"
          },
          "frontend_boundary": {
            "$ref": "#/components/schemas/PlatformBankFrontendBoundary"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformBankProductRateSummary": {
        "type": "object",
        "required": [
          "rate_count",
          "min_advertised_rate_percent",
          "max_advertised_rate_percent",
          "rate_types"
        ],
        "properties": {
          "rate_count": {
            "type": "integer",
            "minimum": 0
          },
          "min_advertised_rate_percent": {
            "type": "number",
            "minimum": 0
          },
          "max_advertised_rate_percent": {
            "type": "number",
            "minimum": 0
          },
          "rate_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformBankProductRateType"
            }
          }
        }
      },
      "PlatformBankProductSummary": {
        "type": "object",
        "required": [
          "id",
          "sandbox_fixture_id",
          "product_code",
          "display_name",
          "product_type",
          "currency",
          "status",
          "min_loan_amount_sgd",
          "max_loan_amount_sgd",
          "min_tenure_months",
          "max_tenure_months",
          "supported_property_types",
          "advertised_rate_summary",
          "public_safe_catalogue",
          "bank_secret_exposed",
          "borrower_data_required",
          "livemode",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "sandbox_fixture_id": {
            "type": "string"
          },
          "product_code": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "product_type": {
            "$ref": "#/components/schemas/PlatformBankProductType"
          },
          "currency": {
            "type": "string",
            "enum": [
              "SGD"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "sandbox_available"
            ]
          },
          "min_loan_amount_sgd": {
            "type": "integer",
            "minimum": 1
          },
          "max_loan_amount_sgd": {
            "type": "integer",
            "minimum": 1
          },
          "min_tenure_months": {
            "type": "integer",
            "minimum": 1
          },
          "max_tenure_months": {
            "type": "integer",
            "minimum": 1
          },
          "supported_property_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformBankSupportedPropertyType"
            }
          },
          "advertised_rate_summary": {
            "$ref": "#/components/schemas/PlatformBankProductRateSummary"
          },
          "public_safe_catalogue": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "bank_secret_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "borrower_data_required": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformBankProductBoundary": {
        "type": "object",
        "required": [
          "sandbox_only",
          "public_safe_catalogue",
          "bank_secrets_redacted",
          "borrower_data_required",
          "raw_myinfo_exposed",
          "credit_bureau_data_exposed",
          "bank_statement_exposed",
          "live_quote_generation_deferred",
          "application_create_deferred",
          "rates_endpoint_deferred"
        ],
        "properties": {
          "sandbox_only": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "public_safe_catalogue": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "bank_secrets_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "borrower_data_required": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_myinfo_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credit_bureau_data_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "bank_statement_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "live_quote_generation_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "application_create_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "rates_endpoint_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          }
        }
      },
      "PlatformBankProductListResponse": {
        "type": "object",
        "required": [
          "products",
          "product_boundary",
          "catalogue_fixture_id",
          "product_count",
          "rate_count",
          "side_effects",
          "livemode",
          "request_id"
        ],
        "properties": {
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformBankProductSummary"
            }
          },
          "product_boundary": {
            "$ref": "#/components/schemas/PlatformBankProductBoundary"
          },
          "catalogue_fixture_id": {
            "type": "string"
          },
          "product_count": {
            "type": "integer",
            "minimum": 0
          },
          "rate_count": {
            "type": "integer",
            "minimum": 0
          },
          "side_effects": {
            "$ref": "#/components/schemas/PlatformBankSandboxSideEffects"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformBankRateSummary": {
        "type": "object",
        "required": [
          "id",
          "sandbox_fixture_id",
          "product_code",
          "product_display_name",
          "rate_code",
          "rate_type",
          "currency",
          "advertised_rate_percent",
          "comparison_rate_label",
          "lock_in_months",
          "minimum_loan_amount_sgd",
          "maximum_loan_amount_sgd",
          "minimum_tenure_months",
          "maximum_tenure_months",
          "supported_property_types",
          "public_safe_rate",
          "borrower_specific_pricing",
          "live_quote_generated",
          "bank_secret_exposed",
          "borrower_data_required",
          "livemode",
          "valid_from",
          "valid_until",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "sandbox_fixture_id": {
            "type": "string"
          },
          "product_code": {
            "type": "string"
          },
          "product_display_name": {
            "type": "string"
          },
          "rate_code": {
            "type": "string"
          },
          "rate_type": {
            "$ref": "#/components/schemas/PlatformBankProductRateType"
          },
          "currency": {
            "type": "string",
            "enum": [
              "SGD"
            ]
          },
          "advertised_rate_percent": {
            "type": "number",
            "minimum": 0
          },
          "comparison_rate_label": {
            "type": "string"
          },
          "lock_in_months": {
            "type": "integer",
            "minimum": 0
          },
          "minimum_loan_amount_sgd": {
            "type": "integer",
            "minimum": 1
          },
          "maximum_loan_amount_sgd": {
            "type": "integer",
            "minimum": 1
          },
          "minimum_tenure_months": {
            "type": "integer",
            "minimum": 1
          },
          "maximum_tenure_months": {
            "type": "integer",
            "minimum": 1
          },
          "supported_property_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformBankSupportedPropertyType"
            }
          },
          "public_safe_rate": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "borrower_specific_pricing": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "live_quote_generated": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "bank_secret_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "borrower_data_required": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "valid_from": {
            "type": "string",
            "format": "date"
          },
          "valid_until": {
            "type": "string",
            "format": "date"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformBankRateBoundary": {
        "type": "object",
        "required": [
          "sandbox_only",
          "advertised_rates_only",
          "public_safe_rate_table",
          "bank_secrets_redacted",
          "borrower_data_required",
          "borrower_specific_pricing_deferred",
          "raw_myinfo_exposed",
          "credit_bureau_data_exposed",
          "bank_statement_exposed",
          "live_quote_generation_deferred",
          "application_create_deferred"
        ],
        "properties": {
          "sandbox_only": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "advertised_rates_only": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "public_safe_rate_table": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "bank_secrets_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "borrower_data_required": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "borrower_specific_pricing_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "raw_myinfo_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credit_bureau_data_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "bank_statement_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "live_quote_generation_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "application_create_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          }
        }
      },
      "PlatformBankRateListResponse": {
        "type": "object",
        "required": [
          "rates",
          "rate_boundary",
          "catalogue_fixture_id",
          "product_count",
          "rate_count",
          "side_effects",
          "livemode",
          "request_id"
        ],
        "properties": {
          "rates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformBankRateSummary"
            }
          },
          "rate_boundary": {
            "$ref": "#/components/schemas/PlatformBankRateBoundary"
          },
          "catalogue_fixture_id": {
            "type": "string"
          },
          "product_count": {
            "type": "integer",
            "minimum": 0
          },
          "rate_count": {
            "type": "integer",
            "minimum": 0
          },
          "side_effects": {
            "$ref": "#/components/schemas/PlatformBankSandboxSideEffects"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformBankAuditEventType": {
        "type": "string",
        "enum": [
          "bank.frontend_config.read",
          "bank.eligibility.checked",
          "bank.application.status.read",
          "bank.document_manifest.read",
          "bank.callback.delivery.deferred"
        ]
      },
      "PlatformBankAuditOutcome": {
        "type": "string",
        "enum": [
          "allowed",
          "deferred"
        ]
      },
      "PlatformBankAuditResourceType": {
        "type": "string",
        "enum": [
          "bank_frontend_config",
          "bank_eligibility",
          "bank_application",
          "bank_document_manifest",
          "bank_callback"
        ]
      },
      "PlatformBankAuditActorType": {
        "type": "string",
        "enum": [
          "bank_staff",
          "automation_client",
          "homejourney_system"
        ]
      },
      "PlatformBankAuditActorRole": {
        "type": "string",
        "enum": [
          "relationship_manager",
          "checker",
          "automation_client"
        ]
      },
      "PlatformBankStaffMember": {
        "type": "object",
        "required": [
          "id",
          "sandbox_fixture_id",
          "display_name",
          "role",
          "team",
          "branch_code",
          "active",
          "partner_identity_required",
          "borrower_token_staff_actions_allowed",
          "raw_staff_profile_exposed",
          "contact_fields_exposed",
          "livemode",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "sandbox_fixture_id": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "role": {
            "$ref": "#/components/schemas/PlatformBankFrontendStaffRole"
          },
          "team": {
            "type": "string",
            "enum": [
              "mortgage_frontend_sandbox"
            ]
          },
          "branch_code": {
            "type": "string"
          },
          "active": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "partner_identity_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "borrower_token_staff_actions_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_staff_profile_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "contact_fields_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformBankStaffReadBoundary": {
        "type": "object",
        "required": [
          "sandbox_only",
          "staff_metadata_only",
          "bank_secrets_redacted",
          "contact_fields_redacted",
          "raw_staff_profile_redacted",
          "borrower_token_staff_actions_allowed",
          "partner_identity_required",
          "staff_write_deferred",
          "live_staff_directory_deferred"
        ],
        "properties": {
          "sandbox_only": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "staff_metadata_only": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "bank_secrets_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "contact_fields_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "raw_staff_profile_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "partner_identity_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "staff_write_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "live_staff_directory_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "borrower_token_staff_actions_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "PlatformBankStaffListResponse": {
        "type": "object",
        "required": [
          "staff",
          "staff_boundary",
          "staff_count",
          "side_effects",
          "livemode",
          "request_id"
        ],
        "properties": {
          "staff": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformBankStaffMember"
            }
          },
          "staff_boundary": {
            "$ref": "#/components/schemas/PlatformBankStaffReadBoundary"
          },
          "staff_count": {
            "type": "integer",
            "minimum": 0
          },
          "side_effects": {
            "$ref": "#/components/schemas/PlatformBankSandboxSideEffects"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformBankAuditEvent": {
        "type": "object",
        "required": [
          "id",
          "sandbox_fixture_id",
          "event_type",
          "actor_type",
          "actor_role",
          "actor_reference",
          "resource_type",
          "resource_id",
          "outcome",
          "safe_summary",
          "raw_payload_exposed",
          "request_headers_exposed",
          "response_body_exposed",
          "api_key_digest_exposed",
          "customer_pii_exposed",
          "livemode",
          "created_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "sandbox_fixture_id": {
            "type": "string"
          },
          "event_type": {
            "$ref": "#/components/schemas/PlatformBankAuditEventType"
          },
          "actor_type": {
            "$ref": "#/components/schemas/PlatformBankAuditActorType"
          },
          "actor_role": {
            "$ref": "#/components/schemas/PlatformBankAuditActorRole"
          },
          "actor_reference": {
            "type": "string"
          },
          "resource_type": {
            "$ref": "#/components/schemas/PlatformBankAuditResourceType"
          },
          "resource_id": {
            "type": "string"
          },
          "outcome": {
            "$ref": "#/components/schemas/PlatformBankAuditOutcome"
          },
          "safe_summary": {
            "type": "string"
          },
          "raw_payload_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_headers_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "response_body_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "api_key_digest_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "customer_pii_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformBankAuditReadBoundary": {
        "type": "object",
        "required": [
          "sandbox_only",
          "audit_metadata_only",
          "bank_secrets_redacted",
          "raw_payloads_redacted",
          "request_headers_redacted",
          "response_bodies_redacted",
          "api_key_digests_redacted",
          "customer_pii_redacted",
          "staff_contact_redacted",
          "live_audit_persistence_deferred",
          "callback_delivery_deferred"
        ],
        "properties": {
          "sandbox_only": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "audit_metadata_only": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "bank_secrets_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "raw_payloads_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "request_headers_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "response_bodies_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "api_key_digests_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "customer_pii_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "staff_contact_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "live_audit_persistence_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "callback_delivery_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          }
        }
      },
      "PlatformBankAuditEventListResponse": {
        "type": "object",
        "required": [
          "audit_events",
          "audit_boundary",
          "audit_event_count",
          "side_effects",
          "livemode",
          "request_id"
        ],
        "properties": {
          "audit_events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformBankAuditEvent"
            }
          },
          "audit_boundary": {
            "$ref": "#/components/schemas/PlatformBankAuditReadBoundary"
          },
          "audit_event_count": {
            "type": "integer",
            "minimum": 0
          },
          "side_effects": {
            "$ref": "#/components/schemas/PlatformBankSandboxSideEffects"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformBankDocumentType": {
        "type": "string",
        "enum": [
          "identity_summary",
          "income_notice_summary",
          "property_option_summary",
          "bank_statement_summary"
        ]
      },
      "PlatformBankDocumentRequirementState": {
        "type": "string",
        "enum": [
          "required",
          "received"
        ]
      },
      "PlatformBankDocumentReviewStatus": {
        "type": "string",
        "enum": [
          "not_started",
          "pending_review",
          "accepted",
          "rejected"
        ]
      },
      "PlatformBankDocumentHandoffState": {
        "type": "object",
        "required": [
          "available",
          "reason"
        ],
        "properties": {
          "available": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "reason": {
            "type": "string",
            "enum": [
              "deferred_until_signed_storage_handoff"
            ]
          }
        }
      },
      "PlatformBankDocumentRequirement": {
        "type": "object",
        "required": [
          "id",
          "document_type",
          "requirement_state",
          "upload_status",
          "review_status",
          "safe_display_label",
          "consent_category",
          "signed_upload_handoff",
          "signed_download_handoff",
          "raw_document_contents_exposed",
          "permanent_storage_path_exposed",
          "nric_fin_exposed",
          "income_proof_contents_exposed",
          "bank_statement_contents_exposed",
          "livemode"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "document_type": {
            "$ref": "#/components/schemas/PlatformBankDocumentType"
          },
          "requirement_state": {
            "$ref": "#/components/schemas/PlatformBankDocumentRequirementState"
          },
          "upload_status": {
            "type": "string",
            "enum": [
              "missing",
              "received"
            ]
          },
          "review_status": {
            "$ref": "#/components/schemas/PlatformBankDocumentReviewStatus"
          },
          "safe_display_label": {
            "type": "string"
          },
          "consent_category": {
            "type": "string",
            "enum": [
              "document_manifest_metadata"
            ]
          },
          "signed_upload_handoff": {
            "$ref": "#/components/schemas/PlatformBankDocumentHandoffState"
          },
          "signed_download_handoff": {
            "$ref": "#/components/schemas/PlatformBankDocumentHandoffState"
          },
          "raw_document_contents_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "permanent_storage_path_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "nric_fin_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "income_proof_contents_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "bank_statement_contents_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "PlatformBankDocumentManifestReadBoundary": {
        "type": "object",
        "required": [
          "sandbox_only",
          "manifest_metadata_only",
          "bank_secrets_redacted",
          "raw_document_contents_redacted",
          "raw_myinfo_redacted",
          "credit_bureau_data_redacted",
          "nric_fin_redacted",
          "income_proof_contents_redacted",
          "bank_statement_contents_redacted",
          "signed_handoff_urls_deferred",
          "application_write_deferred",
          "callback_delivery_deferred"
        ],
        "properties": {
          "sandbox_only": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "manifest_metadata_only": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "bank_secrets_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "raw_document_contents_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "raw_myinfo_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "credit_bureau_data_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "nric_fin_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "income_proof_contents_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "bank_statement_contents_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "signed_handoff_urls_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "application_write_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "callback_delivery_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          }
        }
      },
      "PlatformBankDocumentManifestResponse": {
        "type": "object",
        "required": [
          "application",
          "documents",
          "document_boundary",
          "manifest_fixture_id",
          "document_count",
          "side_effects",
          "livemode",
          "request_id"
        ],
        "properties": {
          "application": {
            "$ref": "#/components/schemas/PlatformBankApplicationSummary"
          },
          "documents": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformBankDocumentRequirement"
            }
          },
          "document_boundary": {
            "$ref": "#/components/schemas/PlatformBankDocumentManifestReadBoundary"
          },
          "manifest_fixture_id": {
            "type": "string"
          },
          "document_count": {
            "type": "integer",
            "minimum": 0
          },
          "side_effects": {
            "$ref": "#/components/schemas/PlatformBankSandboxSideEffects"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "BillingOwnerVisibilityGatesResponse": {
        "type": "object",
        "required": [
          "gates",
          "summary",
          "authorization",
          "public_safety",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "gates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BillingOwnerVisibilityGate"
            }
          },
          "summary": {
            "$ref": "#/components/schemas/BillingOwnerVisibilitySummary"
          },
          "authorization": {
            "$ref": "#/components/schemas/BillingOwnerVisibilityAuthorization"
          },
          "public_safety": {
            "$ref": "#/components/schemas/BillingOwnerVisibilityPublicSafety"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "BillingOwnerVisibilityGate": {
        "type": "object",
        "required": [
          "module_id",
          "label",
          "workspace_root",
          "billing_owner",
          "invoice_contact",
          "billing_account_org_id",
          "billing_account_client_id",
          "required_scope",
          "runtime_boundary",
          "decision",
          "visibility",
          "satisfied_prerequisites",
          "missing_prerequisites",
          "partner_facing_billing_table_reads_allowed",
          "raw_payment_payload_visible",
          "invoice_external_send_allowed",
          "payment_collection_allowed",
          "quota_enforcement_allowed",
          "credential_suspension_allowed",
          "usage_summary_test_id",
          "launch_ready",
          "blocker",
          "next_action"
        ],
        "properties": {
          "module_id": {
            "type": "string",
            "enum": [
              "agent",
              "agency",
              "business",
              "mortgage",
              "legal",
              "developer",
              "renovation"
            ]
          },
          "label": {
            "type": "string"
          },
          "workspace_root": {
            "type": "string"
          },
          "billing_owner": {
            "type": "string"
          },
          "invoice_contact": {
            "type": "string",
            "format": "email"
          },
          "billing_account_org_id": {
            "type": "string"
          },
          "billing_account_client_id": {
            "type": "string"
          },
          "required_scope": {
            "type": "string",
            "enum": [
              "platform.billing_owner_visibility.read"
            ]
          },
          "runtime_boundary": {
            "type": "string",
            "enum": [
              "read_only_readiness_contract_no_partner_table_reads"
            ]
          },
          "decision": {
            "type": "string",
            "enum": [
              "visible_for_billing_owner_review"
            ]
          },
          "visibility": {
            "type": "string",
            "enum": [
              "billing_owner_and_internal_finance_only"
            ]
          },
          "satisfied_prerequisites": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BillingOwnerVisibilityPrerequisite"
            }
          },
          "missing_prerequisites": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/BillingOwnerVisibilityPrerequisite"
            }
          },
          "partner_facing_billing_table_reads_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_payment_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "invoice_external_send_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_collection_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "quota_enforcement_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credential_suspension_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "usage_summary_test_id": {
            "type": "string"
          },
          "launch_ready": {
            "type": "boolean"
          },
          "blocker": {
            "type": [
              "string",
              "null"
            ]
          },
          "next_action": {
            "type": "string"
          }
        }
      },
      "BillingOwnerVisibilityPrerequisite": {
        "type": "string",
        "enum": [
          "plan_state",
          "billing_owner",
          "invoice_contact",
          "usage_summary",
          "manual_overage_review"
        ]
      },
      "BillingOwnerVisibilitySummary": {
        "type": "object",
        "required": [
          "total_verticals",
          "plan_state_visible",
          "billing_owner_visible",
          "invoice_contact_visible",
          "billing_owner_visibility_gates",
          "partner_billing_table_reads_deferred",
          "usage_events_present",
          "customer_visible_usage_summaries",
          "automatic_overage_enforcement_blocked",
          "billing_owner_gate_side_effects_blocked",
          "launch_ready_contracts",
          "source_contract",
          "partner_billing_read_model"
        ],
        "properties": {
          "total_verticals": {
            "type": "integer",
            "minimum": 0
          },
          "plan_state_visible": {
            "type": "integer",
            "minimum": 0
          },
          "billing_owner_visible": {
            "type": "integer",
            "minimum": 0
          },
          "invoice_contact_visible": {
            "type": "integer",
            "minimum": 0
          },
          "billing_owner_visibility_gates": {
            "type": "integer",
            "minimum": 0
          },
          "partner_billing_table_reads_deferred": {
            "type": "integer",
            "minimum": 0
          },
          "usage_events_present": {
            "type": "integer",
            "minimum": 0
          },
          "customer_visible_usage_summaries": {
            "type": "integer",
            "minimum": 0
          },
          "automatic_overage_enforcement_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "billing_owner_gate_side_effects_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "launch_ready_contracts": {
            "type": "integer",
            "minimum": 0
          },
          "source_contract": {
            "type": "string",
            "enum": [
              "vertical_billing_usage_contract"
            ]
          },
          "partner_billing_read_model": {
            "type": "string",
            "enum": [
              "deferred_until_rls_partner_read_paths"
            ]
          }
        }
      },
      "BillingOwnerVisibilityAuthorization": {
        "type": "object",
        "required": [
          "organization_id",
          "client_id",
          "api_key_id",
          "required_scope",
          "granted_billing_scopes",
          "actor_model",
          "data_access",
          "table_access",
          "mutation_access"
        ],
        "properties": {
          "organization_id": {
            "type": "string",
            "format": "uuid"
          },
          "client_id": {
            "type": "string",
            "format": "uuid"
          },
          "api_key_id": {
            "type": "string",
            "format": "uuid"
          },
          "required_scope": {
            "type": "string",
            "enum": [
              "platform.billing_owner_visibility.read"
            ]
          },
          "granted_billing_scopes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformScope"
            }
          },
          "actor_model": {
            "type": "string",
            "enum": [
              "api_key_automation_client"
            ]
          },
          "data_access": {
            "type": "string",
            "enum": [
              "billing_owner_visibility_contract_only"
            ]
          },
          "table_access": {
            "type": "string",
            "enum": [
              "no_partner_billing_table_reads"
            ]
          },
          "mutation_access": {
            "type": "string",
            "enum": [
              "billing_writes_deferred"
            ]
          }
        }
      },
      "BillingOwnerVisibilityPublicSafety": {
        "type": "object",
        "required": [
          "partner_billing_table_reads_allowed",
          "raw_payment_payload_visible",
          "invoice_external_send_allowed",
          "payment_collection_allowed",
          "quota_enforcement_allowed",
          "credential_suspension_allowed",
          "external_finance_calls",
          "billing_write_mutations_enabled"
        ],
        "properties": {
          "partner_billing_table_reads_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_payment_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "invoice_external_send_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_collection_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "quota_enforcement_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credential_suspension_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "external_finance_calls": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "billing_write_mutations_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "PlatformDeveloperProjectStatus": {
        "type": "string",
        "enum": [
          "active",
          "upcoming"
        ]
      },
      "PlatformDeveloperFreshnessStatus": {
        "type": "string",
        "enum": [
          "current",
          "stale",
          "fallback"
        ]
      },
      "PlatformDeveloperSourcePrecedence": {
        "type": "string",
        "enum": [
          "official_developer_batch",
          "approved_homejourney_admin_correction",
          "trusted_partner_feed",
          "scraper_new_launches_fallback"
        ]
      },
      "PlatformDeveloperUnitTypeAvailabilityStatus": {
        "type": "string",
        "enum": [
          "available",
          "limited",
          "preview",
          "fallback_unverified"
        ]
      },
      "PlatformDeveloperPriceListStatus": {
        "type": "string",
        "enum": [
          "published",
          "superseded",
          "rolled_back"
        ]
      },
      "PlatformDeveloperAttribution": {
        "type": "object",
        "required": [
          "source",
          "source_label",
          "source_updated_at",
          "last_verified_at",
          "freshness_status",
          "source_precedence",
          "precedence_rank"
        ],
        "properties": {
          "source": {
            "$ref": "#/components/schemas/PlatformDeveloperSourcePrecedence"
          },
          "source_label": {
            "type": "string"
          },
          "source_updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "last_verified_at": {
            "type": "string",
            "format": "date-time"
          },
          "freshness_status": {
            "$ref": "#/components/schemas/PlatformDeveloperFreshnessStatus"
          },
          "source_precedence": {
            "$ref": "#/components/schemas/PlatformDeveloperSourcePrecedence"
          },
          "precedence_rank": {
            "type": "integer",
            "enum": [
              1,
              2,
              3,
              4
            ]
          }
        }
      },
      "PlatformDeveloperSideEffects": {
        "type": "object",
        "required": [
          "production_feed_called",
          "live_callback_sent",
          "public_page_published",
          "live_new_launches_mutated",
          "sms_sent",
          "whatsapp_sent",
          "email_sent",
          "crm_write_performed",
          "calendar_write_performed"
        ],
        "properties": {
          "production_feed_called": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "live_callback_sent": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "public_page_published": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "live_new_launches_mutated": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "sms_sent": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "whatsapp_sent": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "email_sent": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "crm_write_performed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "calendar_write_performed": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "PlatformDeveloperProjectSummary": {
        "type": "object",
        "required": [
          "id",
          "sandbox_fixture_id",
          "project_slug",
          "display_name",
          "developer_organization",
          "status",
          "district",
          "tenure",
          "launch_quarter",
          "source_attribution",
          "public_inventory_summary",
          "publication",
          "safety",
          "side_effects",
          "livemode",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "sandbox_fixture_id": {
            "type": "string"
          },
          "project_slug": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "developer_organization": {
            "type": "object",
            "required": [
              "id",
              "display_name",
              "organization_type",
              "environment"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "display_name": {
                "type": "string"
              },
              "organization_type": {
                "type": "string",
                "enum": [
                  "developer"
                ]
              },
              "environment": {
                "type": "string",
                "enum": [
                  "sandbox"
                ]
              }
            }
          },
          "status": {
            "$ref": "#/components/schemas/PlatformDeveloperProjectStatus"
          },
          "district": {
            "type": "string"
          },
          "tenure": {
            "type": "string"
          },
          "launch_quarter": {
            "type": "string"
          },
          "source_attribution": {
            "type": "object",
            "required": [
              "source",
              "source_label",
              "source_updated_at",
              "last_verified_at",
              "freshness_status",
              "source_precedence",
              "precedence_rank"
            ],
            "properties": {
              "source": {
                "$ref": "#/components/schemas/PlatformDeveloperSourcePrecedence"
              },
              "source_label": {
                "type": "string"
              },
              "source_updated_at": {
                "type": "string",
                "format": "date-time"
              },
              "last_verified_at": {
                "type": "string",
                "format": "date-time"
              },
              "freshness_status": {
                "$ref": "#/components/schemas/PlatformDeveloperFreshnessStatus"
              },
              "source_precedence": {
                "$ref": "#/components/schemas/PlatformDeveloperSourcePrecedence"
              },
              "precedence_rank": {
                "type": "integer",
                "enum": [
                  1,
                  2,
                  3,
                  4
                ]
              }
            }
          },
          "public_inventory_summary": {
            "type": "object",
            "required": [
              "public_unit_type_count",
              "available_units_label",
              "price_range_public",
              "unit_stack_detail_public",
              "unit_numbers_redacted",
              "stack_identifiers_redacted"
            ],
            "properties": {
              "public_unit_type_count": {
                "type": "integer",
                "minimum": 0
              },
              "available_units_label": {
                "type": "string"
              },
              "price_range_public": {
                "type": "string"
              },
              "unit_stack_detail_public": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "unit_numbers_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "stack_identifiers_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "publication": {
            "type": "object",
            "required": [
              "project_site_status",
              "public_page_published",
              "browse_compatibility_surface"
            ],
            "properties": {
              "project_site_status": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              },
              "public_page_published": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "browse_compatibility_surface": {
                "type": "string",
                "enum": [
                  "existing_browse_project_pages"
                ]
              }
            }
          },
          "safety": {
            "type": "object",
            "required": [
              "buyer_identity_exposed",
              "reservation_notes_exposed",
              "raw_unit_numbers_exposed",
              "internal_margin_exposed",
              "raw_source_files_exposed",
              "source_credentials_exposed",
              "private_crm_notes_exposed"
            ],
            "properties": {
              "buyer_identity_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "reservation_notes_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_unit_numbers_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "internal_margin_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_source_files_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "source_credentials_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "private_crm_notes_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "side_effects": {
            "type": "object",
            "required": [
              "production_feed_called",
              "live_callback_sent",
              "public_page_published",
              "live_new_launches_mutated",
              "sms_sent",
              "whatsapp_sent",
              "email_sent",
              "crm_write_performed",
              "calendar_write_performed"
            ],
            "properties": {
              "production_feed_called": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "live_callback_sent": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "public_page_published": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "live_new_launches_mutated": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "sms_sent": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "whatsapp_sent": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "email_sent": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "crm_write_performed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "calendar_write_performed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformDeveloperProjectDetail": {
        "allOf": [
          {
            "type": "object",
            "required": [
              "id",
              "sandbox_fixture_id",
              "project_slug",
              "display_name",
              "developer_organization",
              "status",
              "district",
              "tenure",
              "launch_quarter",
              "source_attribution",
              "public_inventory_summary",
              "publication",
              "safety",
              "side_effects",
              "livemode",
              "updated_at"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "sandbox_fixture_id": {
                "type": "string"
              },
              "project_slug": {
                "type": "string"
              },
              "display_name": {
                "type": "string"
              },
              "developer_organization": {
                "type": "object",
                "required": [
                  "id",
                  "display_name",
                  "organization_type",
                  "environment"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "display_name": {
                    "type": "string"
                  },
                  "organization_type": {
                    "type": "string",
                    "enum": [
                      "developer"
                    ]
                  },
                  "environment": {
                    "type": "string",
                    "enum": [
                      "sandbox"
                    ]
                  }
                }
              },
              "status": {
                "$ref": "#/components/schemas/PlatformDeveloperProjectStatus"
              },
              "district": {
                "type": "string"
              },
              "tenure": {
                "type": "string"
              },
              "launch_quarter": {
                "type": "string"
              },
              "source_attribution": {
                "type": "object",
                "required": [
                  "source",
                  "source_label",
                  "source_updated_at",
                  "last_verified_at",
                  "freshness_status",
                  "source_precedence",
                  "precedence_rank"
                ],
                "properties": {
                  "source": {
                    "$ref": "#/components/schemas/PlatformDeveloperSourcePrecedence"
                  },
                  "source_label": {
                    "type": "string"
                  },
                  "source_updated_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "last_verified_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "freshness_status": {
                    "$ref": "#/components/schemas/PlatformDeveloperFreshnessStatus"
                  },
                  "source_precedence": {
                    "$ref": "#/components/schemas/PlatformDeveloperSourcePrecedence"
                  },
                  "precedence_rank": {
                    "type": "integer",
                    "enum": [
                      1,
                      2,
                      3,
                      4
                    ]
                  }
                }
              },
              "public_inventory_summary": {
                "type": "object",
                "required": [
                  "public_unit_type_count",
                  "available_units_label",
                  "price_range_public",
                  "unit_stack_detail_public",
                  "unit_numbers_redacted",
                  "stack_identifiers_redacted"
                ],
                "properties": {
                  "public_unit_type_count": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "available_units_label": {
                    "type": "string"
                  },
                  "price_range_public": {
                    "type": "string"
                  },
                  "unit_stack_detail_public": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "unit_numbers_redacted": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "stack_identifiers_redacted": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  }
                }
              },
              "publication": {
                "type": "object",
                "required": [
                  "project_site_status",
                  "public_page_published",
                  "browse_compatibility_surface"
                ],
                "properties": {
                  "project_site_status": {
                    "type": "string",
                    "enum": [
                      "deferred"
                    ]
                  },
                  "public_page_published": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "browse_compatibility_surface": {
                    "type": "string",
                    "enum": [
                      "existing_browse_project_pages"
                    ]
                  }
                }
              },
              "safety": {
                "type": "object",
                "required": [
                  "buyer_identity_exposed",
                  "reservation_notes_exposed",
                  "raw_unit_numbers_exposed",
                  "internal_margin_exposed",
                  "raw_source_files_exposed",
                  "source_credentials_exposed",
                  "private_crm_notes_exposed"
                ],
                "properties": {
                  "buyer_identity_exposed": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "reservation_notes_exposed": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_unit_numbers_exposed": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "internal_margin_exposed": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_source_files_exposed": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "source_credentials_exposed": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "private_crm_notes_exposed": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              },
              "side_effects": {
                "type": "object",
                "required": [
                  "production_feed_called",
                  "live_callback_sent",
                  "public_page_published",
                  "live_new_launches_mutated",
                  "sms_sent",
                  "whatsapp_sent",
                  "email_sent",
                  "crm_write_performed",
                  "calendar_write_performed"
                ],
                "properties": {
                  "production_feed_called": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "live_callback_sent": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "public_page_published": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "live_new_launches_mutated": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "sms_sent": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "whatsapp_sent": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "email_sent": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "crm_write_performed": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "calendar_write_performed": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              },
              "livemode": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "updated_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          {
            "type": "object",
            "required": [
              "inventory_boundary",
              "review_gates"
            ],
            "properties": {
              "inventory_boundary": {
                "type": "object",
                "required": [
                  "latest_batch_id",
                  "latest_batch_state",
                  "raw_source_file_exposed",
                  "unit_level_inventory_deferred",
                  "price_lists_deferred",
                  "media_assets_deferred",
                  "showflat_slots_deferred",
                  "lead_routing_deferred"
                ],
                "properties": {
                  "latest_batch_id": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "latest_batch_state": {
                    "type": "string",
                    "enum": [
                      "validated",
                      "stale",
                      "not_available"
                    ]
                  },
                  "raw_source_file_exposed": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "unit_level_inventory_deferred": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "price_lists_deferred": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "media_assets_deferred": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "showflat_slots_deferred": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "lead_routing_deferred": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  }
                }
              },
              "review_gates": {
                "type": "object",
                "required": [
                  "source_precedence_verified",
                  "freshness_attribution_verified",
                  "unit_redaction_verified",
                  "public_site_publish_review_required",
                  "live_promotion_required"
                ],
                "properties": {
                  "source_precedence_verified": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "freshness_attribution_verified": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "unit_redaction_verified": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "public_site_publish_review_required": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "live_promotion_required": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  }
                }
              }
            }
          }
        ]
      },
      "PlatformDeveloperProjectListResponse": {
        "type": "object",
        "required": [
          "projects",
          "pagination",
          "livemode",
          "request_id"
        ],
        "properties": {
          "projects": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformDeveloperProjectSummary"
            }
          },
          "pagination": {
            "type": "object",
            "required": [
              "limit",
              "next_cursor"
            ],
            "properties": {
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              },
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformDeveloperProjectDetailResponse": {
        "type": "object",
        "required": [
          "project",
          "livemode",
          "request_id"
        ],
        "properties": {
          "project": {
            "$ref": "#/components/schemas/PlatformDeveloperProjectDetail"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformDeveloperProjectReference": {
        "type": "object",
        "required": [
          "id",
          "project_slug",
          "display_name",
          "status",
          "source_attribution"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "project_slug": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/PlatformDeveloperProjectStatus"
          },
          "source_attribution": {
            "type": "object",
            "required": [
              "source",
              "source_label",
              "source_updated_at",
              "last_verified_at",
              "freshness_status",
              "source_precedence",
              "precedence_rank"
            ],
            "properties": {
              "source": {
                "$ref": "#/components/schemas/PlatformDeveloperSourcePrecedence"
              },
              "source_label": {
                "type": "string"
              },
              "source_updated_at": {
                "type": "string",
                "format": "date-time"
              },
              "last_verified_at": {
                "type": "string",
                "format": "date-time"
              },
              "freshness_status": {
                "$ref": "#/components/schemas/PlatformDeveloperFreshnessStatus"
              },
              "source_precedence": {
                "$ref": "#/components/schemas/PlatformDeveloperSourcePrecedence"
              },
              "precedence_rank": {
                "type": "integer",
                "enum": [
                  1,
                  2,
                  3,
                  4
                ]
              }
            }
          }
        }
      },
      "PlatformDeveloperProjectUnitType": {
        "type": "object",
        "required": [
          "id",
          "sandbox_fixture_id",
          "project_id",
          "unit_type_code",
          "label",
          "bedrooms",
          "bathrooms",
          "floor_area_sqft",
          "availability",
          "price_guide",
          "source_attribution",
          "safety",
          "side_effects",
          "livemode",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "sandbox_fixture_id": {
            "type": "string"
          },
          "project_id": {
            "type": "string"
          },
          "unit_type_code": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "bedrooms": {
            "type": "integer",
            "minimum": 0
          },
          "bathrooms": {
            "type": "integer",
            "minimum": 0
          },
          "floor_area_sqft": {
            "type": "object",
            "required": [
              "min",
              "max"
            ],
            "properties": {
              "min": {
                "type": "integer",
                "minimum": 1
              },
              "max": {
                "type": "integer",
                "minimum": 1
              }
            }
          },
          "availability": {
            "type": "object",
            "required": [
              "public_status",
              "available_units_label",
              "exact_available_unit_count_exposed",
              "unit_numbers_redacted",
              "stack_identifiers_redacted"
            ],
            "properties": {
              "public_status": {
                "$ref": "#/components/schemas/PlatformDeveloperUnitTypeAvailabilityStatus"
              },
              "available_units_label": {
                "type": "string"
              },
              "exact_available_unit_count_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "unit_numbers_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "stack_identifiers_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "price_guide": {
            "type": "object",
            "required": [
              "currency",
              "price_range_public",
              "effective_date",
              "price_list_publication_status",
              "raw_internal_margin_exposed",
              "buyer_identity_exposed",
              "reservation_notes_exposed"
            ],
            "properties": {
              "currency": {
                "type": "string",
                "enum": [
                  "SGD"
                ]
              },
              "price_range_public": {
                "type": "string"
              },
              "effective_date": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date"
              },
              "price_list_publication_status": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              },
              "raw_internal_margin_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "buyer_identity_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "reservation_notes_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "source_attribution": {
            "type": "object",
            "required": [
              "source",
              "source_label",
              "source_updated_at",
              "last_verified_at",
              "freshness_status",
              "source_precedence",
              "precedence_rank"
            ],
            "properties": {
              "source": {
                "$ref": "#/components/schemas/PlatformDeveloperSourcePrecedence"
              },
              "source_label": {
                "type": "string"
              },
              "source_updated_at": {
                "type": "string",
                "format": "date-time"
              },
              "last_verified_at": {
                "type": "string",
                "format": "date-time"
              },
              "freshness_status": {
                "$ref": "#/components/schemas/PlatformDeveloperFreshnessStatus"
              },
              "source_precedence": {
                "$ref": "#/components/schemas/PlatformDeveloperSourcePrecedence"
              },
              "precedence_rank": {
                "type": "integer",
                "enum": [
                  1,
                  2,
                  3,
                  4
                ]
              }
            }
          },
          "safety": {
            "type": "object",
            "required": [
              "buyer_identity_exposed",
              "reservation_notes_exposed",
              "raw_unit_numbers_exposed",
              "internal_margin_exposed",
              "raw_source_files_exposed",
              "source_credentials_exposed",
              "private_crm_notes_exposed"
            ],
            "properties": {
              "buyer_identity_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "reservation_notes_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_unit_numbers_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "internal_margin_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_source_files_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "source_credentials_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "private_crm_notes_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "side_effects": {
            "type": "object",
            "required": [
              "production_feed_called",
              "live_callback_sent",
              "public_page_published",
              "live_new_launches_mutated",
              "sms_sent",
              "whatsapp_sent",
              "email_sent",
              "crm_write_performed",
              "calendar_write_performed"
            ],
            "properties": {
              "production_feed_called": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "live_callback_sent": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "public_page_published": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "live_new_launches_mutated": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "sms_sent": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "whatsapp_sent": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "email_sent": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "crm_write_performed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "calendar_write_performed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformDeveloperUnitAvailabilityStatus": {
        "type": "string",
        "enum": [
          "available",
          "reserved",
          "sold",
          "blocked",
          "fallback_unverified"
        ]
      },
      "PlatformDeveloperUnit": {
        "type": "object",
        "required": [
          "id",
          "sandbox_fixture_id",
          "project_id",
          "unit_type_code",
          "unit_type_label",
          "bedrooms",
          "floor_area_sqft",
          "floor_band",
          "unit_reference",
          "availability",
          "price",
          "source_attribution",
          "redaction_review",
          "safety",
          "side_effects",
          "livemode",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "sandbox_fixture_id": {
            "type": "string"
          },
          "project_id": {
            "type": "string"
          },
          "unit_type_code": {
            "type": "string"
          },
          "unit_type_label": {
            "type": "string"
          },
          "bedrooms": {
            "type": "integer",
            "minimum": 0
          },
          "floor_area_sqft": {
            "type": "integer",
            "minimum": 1
          },
          "floor_band": {
            "type": "string"
          },
          "unit_reference": {
            "type": "object",
            "required": [
              "public_unit_reference",
              "hashed_unit_reference",
              "raw_unit_number_exposed",
              "stack_identifier_exposed"
            ],
            "properties": {
              "public_unit_reference": {
                "type": "string"
              },
              "hashed_unit_reference": {
                "type": "string"
              },
              "raw_unit_number_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "stack_identifier_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "availability": {
            "type": "object",
            "required": [
              "status",
              "public_label",
              "raw_option_state_exposed",
              "buyer_identity_exposed",
              "reservation_notes_exposed",
              "unapproved_hold_status_exposed"
            ],
            "properties": {
              "status": {
                "$ref": "#/components/schemas/PlatformDeveloperUnitAvailabilityStatus"
              },
              "public_label": {
                "type": "string"
              },
              "raw_option_state_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "buyer_identity_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "reservation_notes_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "unapproved_hold_status_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "price": {
            "type": "object",
            "required": [
              "currency",
              "public_label",
              "exact_price_exposed",
              "internal_discount_exposed",
              "internal_margin_exposed"
            ],
            "properties": {
              "currency": {
                "type": "string",
                "enum": [
                  "SGD"
                ]
              },
              "public_label": {
                "type": "string"
              },
              "exact_price_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "internal_discount_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "internal_margin_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "source_attribution": {
            "$ref": "#/components/schemas/PlatformDeveloperAttribution"
          },
          "redaction_review": {
            "type": "object",
            "required": [
              "scope_required",
              "reviewed_at",
              "unit_number_redacted",
              "stack_identifier_redacted",
              "raw_source_file_redacted",
              "private_notes_redacted"
            ],
            "properties": {
              "scope_required": {
                "type": "string",
                "enum": [
                  "developers.inventory.read"
                ]
              },
              "reviewed_at": {
                "type": "string",
                "format": "date-time"
              },
              "unit_number_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "stack_identifier_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "raw_source_file_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "private_notes_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "safety": {
            "type": "object",
            "required": [
              "raw_unit_number_exposed",
              "stack_identifier_exposed",
              "buyer_identity_exposed",
              "reservation_notes_exposed",
              "raw_option_state_exposed",
              "unapproved_hold_status_exposed",
              "internal_discount_exposed",
              "internal_margin_exposed",
              "raw_source_files_exposed",
              "source_credentials_exposed"
            ],
            "properties": {
              "raw_unit_number_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "stack_identifier_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "buyer_identity_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "reservation_notes_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_option_state_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "unapproved_hold_status_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "internal_discount_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "internal_margin_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_source_files_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "source_credentials_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "side_effects": {
            "$ref": "#/components/schemas/PlatformDeveloperSideEffects"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformDeveloperUnitListResponse": {
        "type": "object",
        "required": [
          "project",
          "units",
          "pagination",
          "unit_boundary",
          "livemode",
          "request_id"
        ],
        "properties": {
          "project": {
            "$ref": "#/components/schemas/PlatformDeveloperProjectReference"
          },
          "units": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformDeveloperUnit"
            }
          },
          "pagination": {
            "type": "object",
            "required": [
              "limit",
              "next_cursor"
            ],
            "properties": {
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              },
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "unit_boundary": {
            "type": "object",
            "required": [
              "restricted_unit_stack_metadata_only",
              "raw_unit_numbers_redacted",
              "stack_identifiers_redacted",
              "buyer_identity_redacted",
              "reservation_notes_redacted",
              "raw_option_state_redacted",
              "write_controls_deferred",
              "live_promotion_required"
            ],
            "properties": {
              "restricted_unit_stack_metadata_only": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "raw_unit_numbers_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "stack_identifiers_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "buyer_identity_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "reservation_notes_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "raw_option_state_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "write_controls_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "live_promotion_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformDeveloperPriceList": {
        "type": "object",
        "required": [
          "id",
          "sandbox_fixture_id",
          "project_id",
          "version",
          "status",
          "effective_date",
          "currency",
          "project_price_range",
          "unit_type_prices",
          "disclaimers",
          "publication",
          "source_attribution",
          "safety",
          "side_effects",
          "livemode",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "sandbox_fixture_id": {
            "type": "string"
          },
          "project_id": {
            "type": "string"
          },
          "version": {
            "type": "integer",
            "minimum": 1
          },
          "status": {
            "$ref": "#/components/schemas/PlatformDeveloperPriceListStatus"
          },
          "effective_date": {
            "type": "string",
            "format": "date"
          },
          "currency": {
            "type": "string",
            "enum": [
              "SGD"
            ]
          },
          "project_price_range": {
            "type": "object",
            "required": [
              "min",
              "max",
              "public_label"
            ],
            "properties": {
              "min": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1
              },
              "max": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 1
              },
              "public_label": {
                "type": "string"
              }
            }
          },
          "unit_type_prices": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "unit_type_code",
                "label",
                "price_range",
                "price_per_sqft_range_public",
                "raw_internal_margin_exposed",
                "buyer_identity_exposed",
                "reservation_notes_exposed",
                "unapproved_hold_status_exposed"
              ],
              "properties": {
                "unit_type_code": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "price_range": {
                  "type": "object",
                  "required": [
                    "min",
                    "max",
                    "public_label"
                  ],
                  "properties": {
                    "min": {
                      "type": [
                        "integer",
                        "null"
                      ],
                      "minimum": 1
                    },
                    "max": {
                      "type": [
                        "integer",
                        "null"
                      ],
                      "minimum": 1
                    },
                    "public_label": {
                      "type": "string"
                    }
                  }
                },
                "price_per_sqft_range_public": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "raw_internal_margin_exposed": {
                  "type": "boolean",
                  "enum": [
                    false
                  ]
                },
                "buyer_identity_exposed": {
                  "type": "boolean",
                  "enum": [
                    false
                  ]
                },
                "reservation_notes_exposed": {
                  "type": "boolean",
                  "enum": [
                    false
                  ]
                },
                "unapproved_hold_status_exposed": {
                  "type": "boolean",
                  "enum": [
                    false
                  ]
                }
              }
            }
          },
          "disclaimers": {
            "type": "object",
            "required": [
              "text",
              "version"
            ],
            "properties": {
              "text": {
                "type": "string"
              },
              "version": {
                "type": "string"
              }
            }
          },
          "publication": {
            "type": "object",
            "required": [
              "published_at",
              "superseded_at",
              "previous_version_id",
              "rollback_available",
              "rollback_target_id"
            ],
            "properties": {
              "published_at": {
                "type": "string",
                "format": "date-time"
              },
              "superseded_at": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "previous_version_id": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "rollback_available": {
                "type": "boolean"
              },
              "rollback_target_id": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "source_attribution": {
            "type": "object",
            "required": [
              "source",
              "source_label",
              "source_updated_at",
              "last_verified_at",
              "freshness_status",
              "source_precedence",
              "precedence_rank"
            ],
            "properties": {
              "source": {
                "$ref": "#/components/schemas/PlatformDeveloperSourcePrecedence"
              },
              "source_label": {
                "type": "string"
              },
              "source_updated_at": {
                "type": "string",
                "format": "date-time"
              },
              "last_verified_at": {
                "type": "string",
                "format": "date-time"
              },
              "freshness_status": {
                "$ref": "#/components/schemas/PlatformDeveloperFreshnessStatus"
              },
              "source_precedence": {
                "$ref": "#/components/schemas/PlatformDeveloperSourcePrecedence"
              },
              "precedence_rank": {
                "type": "integer",
                "enum": [
                  1,
                  2,
                  3,
                  4
                ]
              }
            }
          },
          "safety": {
            "type": "object",
            "required": [
              "raw_internal_margin_exposed",
              "buyer_identity_exposed",
              "reservation_notes_exposed",
              "unapproved_hold_status_exposed",
              "raw_unit_numbers_exposed",
              "stack_identifiers_exposed",
              "raw_source_files_exposed",
              "source_credentials_exposed"
            ],
            "properties": {
              "raw_internal_margin_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "buyer_identity_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "reservation_notes_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "unapproved_hold_status_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_unit_numbers_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "stack_identifiers_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_source_files_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "source_credentials_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "side_effects": {
            "type": "object",
            "required": [
              "production_feed_called",
              "live_callback_sent",
              "public_page_published",
              "live_new_launches_mutated",
              "sms_sent",
              "whatsapp_sent",
              "email_sent",
              "crm_write_performed",
              "calendar_write_performed"
            ],
            "properties": {
              "production_feed_called": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "live_callback_sent": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "public_page_published": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "live_new_launches_mutated": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "sms_sent": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "whatsapp_sent": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "email_sent": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "crm_write_performed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "calendar_write_performed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformDeveloperInventoryBatchKind": {
        "type": "string",
        "enum": [
          "official_inventory_batch",
          "stale_inventory_batch",
          "price_list_rollback"
        ]
      },
      "PlatformDeveloperInventoryBatchState": {
        "type": "string",
        "enum": [
          "validated",
          "stale"
        ]
      },
      "PlatformDeveloperInventoryBatch": {
        "type": "object",
        "required": [
          "id",
          "sandbox_fixture_id",
          "project_id",
          "batch_kind",
          "batch_state",
          "source_attribution",
          "source_window",
          "validation",
          "publication",
          "safety",
          "side_effects",
          "livemode",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "sandbox_fixture_id": {
            "type": "string"
          },
          "project_id": {
            "type": "string"
          },
          "batch_kind": {
            "$ref": "#/components/schemas/PlatformDeveloperInventoryBatchKind"
          },
          "batch_state": {
            "$ref": "#/components/schemas/PlatformDeveloperInventoryBatchState"
          },
          "source_attribution": {
            "$ref": "#/components/schemas/PlatformDeveloperAttribution"
          },
          "source_window": {
            "type": "object",
            "required": [
              "source_updated_at",
              "last_verified_at",
              "freshness_status",
              "stale_inventory_warning_present",
              "approved_homejourney_correction_applied",
              "trusted_partner_feed_applied",
              "scraper_fallback_used"
            ],
            "properties": {
              "source_updated_at": {
                "type": "string",
                "format": "date-time"
              },
              "last_verified_at": {
                "type": "string",
                "format": "date-time"
              },
              "freshness_status": {
                "$ref": "#/components/schemas/PlatformDeveloperFreshnessStatus"
              },
              "stale_inventory_warning_present": {
                "type": "boolean"
              },
              "approved_homejourney_correction_applied": {
                "type": "boolean"
              },
              "trusted_partner_feed_applied": {
                "type": "boolean"
              },
              "scraper_fallback_used": {
                "type": "boolean"
              }
            }
          },
          "validation": {
            "type": "object",
            "required": [
              "schema_version",
              "validation_status",
              "row_count_label",
              "raw_row_count_exposed",
              "source_updated_at_present",
              "last_verified_at_present"
            ],
            "properties": {
              "schema_version": {
                "type": "string",
                "enum": [
                  "developer_inventory_batch.v1"
                ]
              },
              "validation_status": {
                "type": "string",
                "enum": [
                  "passed",
                  "stale_warning"
                ]
              },
              "row_count_label": {
                "type": "string"
              },
              "raw_row_count_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "source_updated_at_present": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "last_verified_at_present": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "publication": {
            "type": "object",
            "required": [
              "ingestion_write_deferred",
              "inventory_publish_deferred",
              "rollback_target_present",
              "rollback_execution_deferred",
              "live_new_launches_mutation_deferred"
            ],
            "properties": {
              "ingestion_write_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "inventory_publish_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "rollback_target_present": {
                "type": "boolean"
              },
              "rollback_execution_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "live_new_launches_mutation_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "safety": {
            "type": "object",
            "required": [
              "raw_source_file_exposed",
              "source_credentials_exposed",
              "raw_unit_numbers_exposed",
              "stack_identifiers_exposed",
              "buyer_identity_exposed",
              "reservation_notes_exposed",
              "internal_margin_exposed",
              "crm_destination_exposed"
            ],
            "properties": {
              "raw_source_file_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "source_credentials_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_unit_numbers_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "stack_identifiers_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "buyer_identity_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "reservation_notes_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "internal_margin_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "crm_destination_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "side_effects": {
            "$ref": "#/components/schemas/PlatformDeveloperSideEffects"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformDeveloperInventoryBatchListResponse": {
        "type": "object",
        "required": [
          "project",
          "inventory_batches",
          "pagination",
          "inventory_batch_boundary",
          "livemode",
          "request_id"
        ],
        "properties": {
          "project": {
            "$ref": "#/components/schemas/PlatformDeveloperProjectReference"
          },
          "inventory_batches": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformDeveloperInventoryBatch"
            }
          },
          "pagination": {
            "type": "object",
            "required": [
              "limit",
              "next_cursor"
            ],
            "properties": {
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              },
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "inventory_batch_boundary": {
            "type": "object",
            "required": [
              "metadata_only",
              "upload_write_deferred",
              "publish_write_deferred",
              "raw_source_files_redacted",
              "source_credentials_redacted",
              "unit_stack_detail_deferred",
              "price_publication_deferred",
              "live_promotion_required"
            ],
            "properties": {
              "metadata_only": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "upload_write_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "publish_write_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "raw_source_files_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "source_credentials_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "unit_stack_detail_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "price_publication_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "live_promotion_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformDeveloperLeadRoutingDeliveryState": {
        "type": "string",
        "enum": [
          "success",
          "failed"
        ]
      },
      "PlatformDeveloperLeadRoutingDestination": {
        "type": "object",
        "required": [
          "destination_id",
          "destination_type",
          "display_name",
          "status",
          "delivery_state",
          "redacted_payload_summary",
          "allowed_actions",
          "blocked_actions"
        ],
        "properties": {
          "destination_id": {
            "type": "string"
          },
          "destination_type": {
            "type": "string",
            "enum": [
              "developer_sales_team",
              "appointed_agency",
              "platform_ops"
            ]
          },
          "display_name": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "sandbox_only"
            ]
          },
          "delivery_state": {
            "$ref": "#/components/schemas/PlatformDeveloperLeadRoutingDeliveryState"
          },
          "redacted_payload_summary": {
            "type": "object",
            "required": [
              "project_reference_included",
              "unit_interest_included",
              "budget_band_included",
              "preferred_slot_included",
              "contact_fields_redacted",
              "raw_message_redacted"
            ],
            "properties": {
              "project_reference_included": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "unit_interest_included": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "budget_band_included": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "preferred_slot_included": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "contact_fields_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "raw_message_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "allowed_actions": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "inspect_metadata"
              ]
            }
          },
          "blocked_actions": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "route_live_lead",
                "export_contact",
                "retry_crm_delivery"
              ]
            }
          }
        }
      },
      "PlatformDeveloperLeadRouting": {
        "type": "object",
        "required": [
          "routing_profile",
          "lead_capture_contract",
          "routing_destinations",
          "crm_delivery",
          "safety",
          "side_effects"
        ],
        "properties": {
          "routing_profile": {
            "type": "object",
            "required": [
              "id",
              "sandbox_fixture_id",
              "status",
              "recipient_model",
              "broker_roster_required",
              "lead_routing_success_fixture_present",
              "crm_delivery_failure_fixture_present"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "sandbox_fixture_id": {
                "type": "string",
                "enum": [
                  "lead_routing_success"
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "sandbox_only"
                ]
              },
              "recipient_model": {
                "type": "string",
                "enum": [
                  "developer_appointed_agency_broker_roster"
                ]
              },
              "broker_roster_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "lead_routing_success_fixture_present": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "crm_delivery_failure_fixture_present": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "lead_capture_contract": {
            "type": "object",
            "required": [
              "project_id_required",
              "unit_interest_supported",
              "budget_supported",
              "preferred_appointment_slot_supported",
              "source_page_required",
              "campaign_supported",
              "consent_text_version_required",
              "raw_contact_fields_returned",
              "buyer_identity_returned"
            ],
            "properties": {
              "project_id_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "unit_interest_supported": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "budget_supported": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "preferred_appointment_slot_supported": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "source_page_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "campaign_supported": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "consent_text_version_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "raw_contact_fields_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "buyer_identity_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "routing_destinations": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformDeveloperLeadRoutingDestination"
            }
          },
          "crm_delivery": {
            "type": "object",
            "required": [
              "success_fixture_id",
              "failure_fixture_id",
              "latest_delivery_state",
              "retryable_failure_present",
              "raw_payload_exposed",
              "destination_credentials_exposed",
              "live_delivery_deferred"
            ],
            "properties": {
              "success_fixture_id": {
                "type": "string"
              },
              "failure_fixture_id": {
                "type": "string"
              },
              "latest_delivery_state": {
                "$ref": "#/components/schemas/PlatformDeveloperLeadRoutingDeliveryState"
              },
              "retryable_failure_present": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "raw_payload_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "destination_credentials_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "live_delivery_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "safety": {
            "type": "object",
            "required": [
              "buyer_identity_exposed",
              "contact_fields_exposed",
              "raw_messages_exposed",
              "private_notes_exposed",
              "broker_contact_exposed",
              "crm_destination_credentials_exposed",
              "raw_crm_payload_exposed",
              "routing_mutations_exposed",
              "write_controls_exposed"
            ],
            "properties": {
              "buyer_identity_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "contact_fields_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_messages_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "private_notes_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "broker_contact_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "crm_destination_credentials_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_crm_payload_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "routing_mutations_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "write_controls_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "side_effects": {
            "$ref": "#/components/schemas/PlatformDeveloperSideEffects"
          }
        }
      },
      "PlatformDeveloperLeadRoutingBoundary": {
        "type": "object",
        "required": [
          "metadata_only",
          "lead_capture_write_deferred",
          "routing_mutation_deferred",
          "crm_delivery_write_deferred",
          "contact_export_deferred",
          "live_promotion_required"
        ],
        "properties": {
          "metadata_only": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "lead_capture_write_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "routing_mutation_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "crm_delivery_write_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "contact_export_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "live_promotion_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          }
        }
      },
      "PlatformDeveloperLeadRoutingResponse": {
        "type": "object",
        "required": [
          "project",
          "lead_routing",
          "lead_routing_boundary",
          "livemode",
          "request_id"
        ],
        "properties": {
          "project": {
            "$ref": "#/components/schemas/PlatformDeveloperProjectReference"
          },
          "lead_routing": {
            "$ref": "#/components/schemas/PlatformDeveloperLeadRouting"
          },
          "lead_routing_boundary": {
            "$ref": "#/components/schemas/PlatformDeveloperLeadRoutingBoundary"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformDeveloperMediaKind": {
        "type": "string",
        "enum": [
          "floor_plan",
          "brochure"
        ]
      },
      "PlatformDeveloperMediaAsset": {
        "type": "object",
        "required": [
          "id",
          "sandbox_fixture_id",
          "project_id",
          "media_kind",
          "title",
          "description",
          "language",
          "file",
          "public_reference",
          "scan",
          "source_attribution",
          "safety",
          "side_effects",
          "livemode",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "sandbox_fixture_id": {
            "type": "string"
          },
          "project_id": {
            "type": "string"
          },
          "media_kind": {
            "$ref": "#/components/schemas/PlatformDeveloperMediaKind"
          },
          "title": {
            "type": "string"
          },
          "description": {
            "type": "string"
          },
          "language": {
            "type": "string",
            "enum": [
              "en"
            ]
          },
          "file": {
            "type": "object",
            "required": [
              "content_type",
              "file_size_bytes",
              "page_count",
              "checksum_sha256_redacted"
            ],
            "properties": {
              "content_type": {
                "type": "string",
                "enum": [
                  "application/pdf"
                ]
              },
              "file_size_bytes": {
                "type": "integer",
                "minimum": 1
              },
              "page_count": {
                "type": "integer",
                "minimum": 1
              },
              "checksum_sha256_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "public_reference": {
            "type": "object",
            "required": [
              "url",
              "label",
              "expires_at",
              "signed_url_generated"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "label": {
                "type": "string"
              },
              "expires_at": {
                "type": "null"
              },
              "signed_url_generated": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "scan": {
            "type": "object",
            "required": [
              "status",
              "scanned_at"
            ],
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "clean"
                ]
              },
              "scanned_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "source_attribution": {
            "type": "object",
            "required": [
              "source",
              "source_label",
              "source_updated_at",
              "last_verified_at",
              "freshness_status",
              "source_precedence",
              "precedence_rank"
            ],
            "properties": {
              "source": {
                "$ref": "#/components/schemas/PlatformDeveloperSourcePrecedence"
              },
              "source_label": {
                "type": "string"
              },
              "source_updated_at": {
                "type": "string",
                "format": "date-time"
              },
              "last_verified_at": {
                "type": "string",
                "format": "date-time"
              },
              "freshness_status": {
                "$ref": "#/components/schemas/PlatformDeveloperFreshnessStatus"
              },
              "source_precedence": {
                "$ref": "#/components/schemas/PlatformDeveloperSourcePrecedence"
              },
              "precedence_rank": {
                "type": "integer",
                "enum": [
                  1,
                  2,
                  3,
                  4
                ]
              }
            }
          },
          "safety": {
            "type": "object",
            "required": [
              "private_document_uri_exposed",
              "signed_storage_url_exposed",
              "raw_source_files_exposed",
              "source_credentials_exposed",
              "buyer_identity_exposed",
              "reservation_notes_exposed",
              "document_contents_exposed"
            ],
            "properties": {
              "private_document_uri_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "signed_storage_url_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_source_files_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "source_credentials_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "buyer_identity_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "reservation_notes_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "document_contents_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "side_effects": {
            "type": "object",
            "required": [
              "production_feed_called",
              "live_callback_sent",
              "public_page_published",
              "live_new_launches_mutated",
              "sms_sent",
              "whatsapp_sent",
              "email_sent",
              "crm_write_performed",
              "calendar_write_performed"
            ],
            "properties": {
              "production_feed_called": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "live_callback_sent": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "public_page_published": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "live_new_launches_mutated": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "sms_sent": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "whatsapp_sent": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "email_sent": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "crm_write_performed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "calendar_write_performed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformDeveloperMediaListResponse": {
        "type": "object",
        "required": [
          "project",
          "media_assets",
          "pagination",
          "media_boundary",
          "livemode",
          "request_id"
        ],
        "properties": {
          "project": {
            "$ref": "#/components/schemas/PlatformDeveloperProjectReference"
          },
          "media_assets": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformDeveloperMediaAsset"
            }
          },
          "pagination": {
            "type": "object",
            "required": [
              "limit",
              "next_cursor"
            ],
            "properties": {
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              },
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "media_boundary": {
            "type": "object",
            "required": [
              "public_safe_references_only",
              "signed_download_url_deferred",
              "upload_write_deferred",
              "raw_source_files_redacted",
              "private_document_uri_redacted",
              "project_site_publish_deferred",
              "live_promotion_required"
            ],
            "properties": {
              "public_safe_references_only": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "signed_download_url_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "upload_write_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "raw_source_files_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "private_document_uri_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "project_site_publish_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "live_promotion_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformDeveloperShowflatRequestStatus": {
        "type": "string",
        "enum": [
          "accepted",
          "waitlisted"
        ]
      },
      "PlatformDeveloperShowflatRequestCreateRequest": {
        "type": "object",
        "required": [
          "showflat_slot_id",
          "requester",
          "source",
          "reminder_consent"
        ],
        "properties": {
          "showflat_slot_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 160
          },
          "requester": {
            "type": "object",
            "required": [
              "name",
              "phone"
            ],
            "properties": {
              "name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 120
              },
              "phone": {
                "type": "string",
                "minLength": 8,
                "maxLength": 40
              },
              "email": {
                "type": "string",
                "format": "email",
                "maxLength": 254
              }
            }
          },
          "unit_interest": {
            "type": "object",
            "properties": {
              "unit_type_code": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80
              },
              "budget_band": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80
              }
            }
          },
          "source": {
            "type": "object",
            "required": [
              "source_page"
            ],
            "properties": {
              "source_page": {
                "type": "string",
                "format": "uri",
                "maxLength": 500
              },
              "campaign": {
                "type": "string",
                "minLength": 1,
                "maxLength": 120
              }
            }
          },
          "reminder_consent": {
            "type": "object",
            "required": [
              "consent_granted",
              "consent_text_version"
            ],
            "properties": {
              "consent_granted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "consent_text_version": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80
              }
            }
          },
          "message": {
            "type": "string",
            "maxLength": 1000
          }
        }
      },
      "PlatformDeveloperShowflatRequest": {
        "type": "object",
        "required": [
          "id",
          "sandbox_fixture_id",
          "project_id",
          "showflat_slot_id",
          "status",
          "requested_at",
          "requested_slot",
          "requester_redaction",
          "unit_interest",
          "routing",
          "reminder_consent",
          "source",
          "source_attribution",
          "safety",
          "side_effects",
          "livemode",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "sandbox_fixture_id": {
            "type": "string"
          },
          "project_id": {
            "type": "string"
          },
          "showflat_slot_id": {
            "type": "string"
          },
          "status": {
            "$ref": "#/components/schemas/PlatformDeveloperShowflatRequestStatus"
          },
          "requested_at": {
            "type": "string",
            "format": "date-time"
          },
          "requested_slot": {
            "type": "object",
            "required": [
              "slot_date",
              "starts_at",
              "ends_at",
              "timezone",
              "public_status",
              "waitlist_state"
            ],
            "properties": {
              "slot_date": {
                "type": "string",
                "format": "date"
              },
              "starts_at": {
                "type": "string",
                "format": "date-time"
              },
              "ends_at": {
                "type": "string",
                "format": "date-time"
              },
              "timezone": {
                "type": "string",
                "enum": [
                  "Asia/Singapore"
                ]
              },
              "public_status": {
                "$ref": "#/components/schemas/PlatformDeveloperShowflatSlotStatus"
              },
              "waitlist_state": {
                "type": "string",
                "enum": [
                  "not_applicable",
                  "waitlist_open",
                  "waitlist_closed"
                ]
              }
            }
          },
          "requester_redaction": {
            "type": "object",
            "required": [
              "buyer_identity_exposed",
              "contact_details_exposed",
              "email_returned",
              "phone_returned",
              "raw_message_returned"
            ],
            "properties": {
              "buyer_identity_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "contact_details_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "email_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "phone_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_message_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "unit_interest": {
            "type": "object",
            "required": [
              "unit_type_code",
              "budget_band",
              "raw_budget_exposed"
            ],
            "properties": {
              "unit_type_code": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "budget_band": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "raw_budget_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "routing": {
            "type": "object",
            "required": [
              "owner_routing_status",
              "assigned_destination_type",
              "crm_owner_routing_metadata_present",
              "crm_write_performed",
              "live_crm_delivery_deferred"
            ],
            "properties": {
              "owner_routing_status": {
                "type": "string",
                "enum": [
                  "sandbox_routed"
                ]
              },
              "assigned_destination_type": {
                "type": "string",
                "enum": [
                  "appointed_agency"
                ]
              },
              "crm_owner_routing_metadata_present": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "crm_write_performed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "live_crm_delivery_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "reminder_consent": {
            "type": "object",
            "required": [
              "consent_granted",
              "consent_text_version",
              "reminder_contact_redacted",
              "sms_whatsapp_email_deferred"
            ],
            "properties": {
              "consent_granted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "consent_text_version": {
                "type": "string"
              },
              "reminder_contact_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "sms_whatsapp_email_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "source": {
            "type": "object",
            "required": [
              "source_page_domain",
              "campaign",
              "raw_source_url_exposed"
            ],
            "properties": {
              "source_page_domain": {
                "type": "string"
              },
              "campaign": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "raw_source_url_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "source_attribution": {
            "$ref": "#/components/schemas/PlatformDeveloperAttribution"
          },
          "safety": {
            "type": "object",
            "required": [
              "buyer_identity_exposed",
              "contact_details_exposed",
              "raw_message_exposed",
              "raw_calendar_id_exposed",
              "broker_contact_exposed",
              "crm_owner_private_note_exposed",
              "external_calendar_write_performed"
            ],
            "properties": {
              "buyer_identity_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "contact_details_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_message_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_calendar_id_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "broker_contact_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "crm_owner_private_note_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "external_calendar_write_performed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "side_effects": {
            "$ref": "#/components/schemas/PlatformDeveloperSideEffects"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformDeveloperShowflatRequestBoundary": {
        "type": "object",
        "required": [
          "sandbox_only",
          "idempotency_required",
          "capacity_limit_checked",
          "waitlist_state_checked",
          "reminder_consent_required",
          "raw_contact_fields_returned",
          "buyer_identity_returned",
          "sms_whatsapp_email_deferred",
          "external_calendar_write_deferred",
          "crm_owner_routing_metadata_present",
          "crm_delivery_write_deferred",
          "live_promotion_required"
        ],
        "properties": {
          "sandbox_only": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "idempotency_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "capacity_limit_checked": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "waitlist_state_checked": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "reminder_consent_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "raw_contact_fields_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "buyer_identity_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "sms_whatsapp_email_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "external_calendar_write_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "crm_owner_routing_metadata_present": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "crm_delivery_write_deferred": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "live_promotion_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          }
        }
      },
      "PlatformDeveloperShowflatSlotStatus": {
        "type": "string",
        "enum": [
          "available",
          "waitlist",
          "full"
        ]
      },
      "PlatformDeveloperShowflatSlot": {
        "type": "object",
        "required": [
          "id",
          "sandbox_fixture_id",
          "project_id",
          "slot_date",
          "starts_at",
          "ends_at",
          "timezone",
          "appointment_type",
          "location",
          "availability",
          "booking_requirements",
          "source_attribution",
          "safety",
          "side_effects",
          "livemode",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "sandbox_fixture_id": {
            "type": "string"
          },
          "project_id": {
            "type": "string"
          },
          "slot_date": {
            "type": "string",
            "format": "date"
          },
          "starts_at": {
            "type": "string",
            "format": "date-time"
          },
          "ends_at": {
            "type": "string",
            "format": "date-time"
          },
          "timezone": {
            "type": "string",
            "enum": [
              "Asia/Singapore"
            ]
          },
          "appointment_type": {
            "type": "string",
            "enum": [
              "showflat_tour"
            ]
          },
          "location": {
            "type": "object",
            "required": [
              "public_label",
              "address_redacted",
              "raw_access_notes_exposed"
            ],
            "properties": {
              "public_label": {
                "type": "string"
              },
              "address_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "raw_access_notes_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "availability": {
            "type": "object",
            "required": [
              "public_status",
              "capacity_limit_present",
              "capacity_remaining_label",
              "exact_capacity_remaining_exposed",
              "waitlist_state"
            ],
            "properties": {
              "public_status": {
                "$ref": "#/components/schemas/PlatformDeveloperShowflatSlotStatus"
              },
              "capacity_limit_present": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "capacity_remaining_label": {
                "type": "string"
              },
              "exact_capacity_remaining_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "waitlist_state": {
                "type": "string",
                "enum": [
                  "not_applicable",
                  "waitlist_open",
                  "waitlist_closed"
                ]
              }
            }
          },
          "booking_requirements": {
            "type": "object",
            "required": [
              "request_write_deferred",
              "idempotency_required_for_requests",
              "reminder_consent_required",
              "external_calendar_write_deferred",
              "sms_whatsapp_email_deferred",
              "crm_owner_routing_deferred"
            ],
            "properties": {
              "request_write_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "idempotency_required_for_requests": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "reminder_consent_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "external_calendar_write_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "sms_whatsapp_email_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "crm_owner_routing_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "source_attribution": {
            "$ref": "#/components/schemas/PlatformDeveloperAttribution"
          },
          "safety": {
            "type": "object",
            "required": [
              "buyer_identity_exposed",
              "contact_details_exposed",
              "broker_contact_exposed",
              "reservation_notes_exposed",
              "raw_calendar_id_exposed",
              "reminder_contact_exposed",
              "crm_owner_private_note_exposed"
            ],
            "properties": {
              "buyer_identity_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "contact_details_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "broker_contact_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "reservation_notes_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_calendar_id_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "reminder_contact_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "crm_owner_private_note_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "side_effects": {
            "$ref": "#/components/schemas/PlatformDeveloperSideEffects"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformDeveloperShowflatSlotListResponse": {
        "type": "object",
        "required": [
          "project",
          "showflat_slots",
          "pagination",
          "showflat_boundary",
          "livemode",
          "request_id"
        ],
        "properties": {
          "project": {
            "$ref": "#/components/schemas/PlatformDeveloperProjectReference"
          },
          "showflat_slots": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformDeveloperShowflatSlot"
            }
          },
          "pagination": {
            "type": "object",
            "required": [
              "limit",
              "next_cursor"
            ],
            "properties": {
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              },
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "showflat_boundary": {
            "type": "object",
            "required": [
              "public_slot_metadata_only",
              "request_write_deferred",
              "capacity_limit_present",
              "waitlist_state_present",
              "reminder_consent_required",
              "sms_whatsapp_email_deferred",
              "external_calendar_write_deferred",
              "crm_owner_routing_deferred",
              "live_promotion_required"
            ],
            "properties": {
              "public_slot_metadata_only": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "request_write_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "capacity_limit_present": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "waitlist_state_present": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "reminder_consent_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "sms_whatsapp_email_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "external_calendar_write_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "crm_owner_routing_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "live_promotion_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformDeveloperShowflatRequestListResponse": {
        "type": "object",
        "required": [
          "project",
          "showflat_requests",
          "pagination",
          "showflat_request_boundary",
          "livemode",
          "request_id"
        ],
        "properties": {
          "project": {
            "$ref": "#/components/schemas/PlatformDeveloperProjectReference"
          },
          "showflat_requests": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformDeveloperShowflatRequest"
            }
          },
          "pagination": {
            "type": "object",
            "required": [
              "limit",
              "next_cursor"
            ],
            "properties": {
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              },
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "showflat_request_boundary": {
            "type": "object",
            "required": [
              "sandbox_only",
              "idempotency_required",
              "capacity_limit_checked",
              "waitlist_state_checked",
              "reminder_consent_required",
              "raw_contact_fields_returned",
              "buyer_identity_returned",
              "sms_whatsapp_email_deferred",
              "external_calendar_write_deferred",
              "crm_owner_routing_metadata_present",
              "crm_delivery_write_deferred",
              "live_promotion_required"
            ],
            "properties": {
              "sandbox_only": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "idempotency_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "capacity_limit_checked": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "waitlist_state_checked": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "reminder_consent_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "raw_contact_fields_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "buyer_identity_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "sms_whatsapp_email_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "external_calendar_write_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "crm_owner_routing_metadata_present": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "crm_delivery_write_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "live_promotion_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformDeveloperShowflatRequestCreateResponse": {
        "type": "object",
        "required": [
          "showflat_request",
          "showflat_request_boundary",
          "livemode",
          "idempotency_key_hash",
          "request_id"
        ],
        "properties": {
          "showflat_request": {
            "$ref": "#/components/schemas/PlatformDeveloperShowflatRequest"
          },
          "prepared_action": {
            "$ref": "#/components/schemas/PlatformDeveloperShowflatPreparedAction"
          },
          "showflat_request_boundary": {
            "type": "object",
            "required": [
              "sandbox_only",
              "idempotency_required",
              "capacity_limit_checked",
              "waitlist_state_checked",
              "reminder_consent_required",
              "raw_contact_fields_returned",
              "buyer_identity_returned",
              "sms_whatsapp_email_deferred",
              "external_calendar_write_deferred",
              "crm_owner_routing_metadata_present",
              "crm_delivery_write_deferred",
              "live_promotion_required"
            ],
            "properties": {
              "sandbox_only": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "idempotency_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "capacity_limit_checked": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "waitlist_state_checked": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "reminder_consent_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "raw_contact_fields_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "buyer_identity_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "sms_whatsapp_email_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "external_calendar_write_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "crm_owner_routing_metadata_present": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "crm_delivery_write_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "live_promotion_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "idempotency_key_hash": {
            "type": "string"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformDeveloperShowflatPreparedAction": {
        "type": "object",
        "required": [
          "action_id",
          "status",
          "required_scope",
          "required_confirmation",
          "idempotency_required",
          "expires_at",
          "side_effects",
          "safety",
          "continuation",
          "principal"
        ],
        "properties": {
          "action_id": {
            "type": "string",
            "maxLength": 192
          },
          "status": {
            "type": "string",
            "enum": [
              "prepared"
            ]
          },
          "required_scope": {
            "type": "string",
            "enum": [
              "developers.showflat.write"
            ]
          },
          "required_confirmation": {
            "type": "string",
            "enum": [
              "first_party_app"
            ]
          },
          "idempotency_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          },
          "side_effects": {
            "type": "object",
            "required": [
              "prepared_action_created",
              "action_prepared_event_created",
              "scheduling_changed",
              "calendar_write_performed",
              "crm_write_performed",
              "contact_data_exposed"
            ],
            "properties": {
              "prepared_action_created": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "action_prepared_event_created": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "scheduling_changed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "calendar_write_performed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "crm_write_performed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "contact_data_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "safety": {
            "type": "object",
            "required": [
              "delegated",
              "api_confirmation_allowed",
              "api_rejection_allowed"
            ],
            "properties": {
              "delegated": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "api_confirmation_allowed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "api_rejection_allowed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "continuation": {
            "type": "object",
            "required": [
              "url",
              "handoff_required",
              "reason"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "handoff_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "reason": {
                "type": "string",
                "enum": [
                  "first_party_confirmation_required"
                ]
              }
            }
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          }
        }
      },
      "PlatformDeveloperProjectUnitTypeListResponse": {
        "type": "object",
        "required": [
          "project",
          "unit_types",
          "pagination",
          "inventory_boundary",
          "livemode",
          "request_id"
        ],
        "properties": {
          "project": {
            "$ref": "#/components/schemas/PlatformDeveloperProjectReference"
          },
          "unit_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformDeveloperProjectUnitType"
            }
          },
          "pagination": {
            "type": "object",
            "required": [
              "limit",
              "next_cursor"
            ],
            "properties": {
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              },
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "inventory_boundary": {
            "type": "object",
            "required": [
              "public_unit_type_availability_only",
              "restricted_unit_stack_detail_deferred",
              "price_list_publication_deferred",
              "showflat_capacity_deferred",
              "live_promotion_required"
            ],
            "properties": {
              "public_unit_type_availability_only": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "restricted_unit_stack_detail_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "price_list_publication_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "showflat_capacity_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "live_promotion_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformDeveloperPriceListListResponse": {
        "type": "object",
        "required": [
          "project",
          "price_lists",
          "pagination",
          "price_list_boundary",
          "livemode",
          "request_id"
        ],
        "properties": {
          "project": {
            "$ref": "#/components/schemas/PlatformDeveloperProjectReference"
          },
          "price_lists": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformDeveloperPriceList"
            }
          },
          "pagination": {
            "type": "object",
            "required": [
              "limit",
              "next_cursor"
            ],
            "properties": {
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              },
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "price_list_boundary": {
            "type": "object",
            "required": [
              "versioned_publications_only",
              "publication_write_deferred",
              "rollback_execution_deferred",
              "raw_internal_margin_redacted",
              "buyer_identity_redacted",
              "reservation_notes_redacted",
              "unapproved_hold_status_redacted",
              "unit_stack_detail_deferred",
              "live_promotion_required"
            ],
            "properties": {
              "versioned_publications_only": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "publication_write_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "rollback_execution_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "raw_internal_margin_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "buyer_identity_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "reservation_notes_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "unapproved_hold_status_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "unit_stack_detail_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "live_promotion_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "DevelopmentProfessionalServicesProject": {
        "type": "object",
        "required": [
          "id",
          "fixture_id",
          "display_name",
          "project_stage",
          "professional_roles",
          "requirements",
          "consultant_tasks",
          "submission_evidence",
          "milestone",
          "design_change_audit",
          "source_attribution",
          "redaction",
          "side_effects"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "fixture_id": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "project_stage": {
            "type": "string",
            "enum": [
              "design_coordination",
              "submission_review"
            ]
          },
          "professional_roles": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "architect",
                "qualified_person",
                "structural_engineer",
                "mep_engineer",
                "bim_consultant"
              ]
            }
          },
          "requirements": {
            "type": "object",
            "required": [
              "requirement_count",
              "authority_codes",
              "raw_requirement_text_exposed"
            ],
            "properties": {
              "requirement_count": {
                "type": "integer",
                "minimum": 0
              },
              "authority_codes": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "raw_requirement_text_exposed": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "consultant_tasks": {
            "type": "object",
            "required": [
              "open_count",
              "overdue_count",
              "assignee_identity_exposed",
              "private_notes_exposed"
            ],
            "properties": {
              "open_count": {
                "type": "integer",
                "minimum": 0
              },
              "overdue_count": {
                "type": "integer",
                "minimum": 0
              },
              "assignee_identity_exposed": {
                "type": "boolean",
                "const": false
              },
              "private_notes_exposed": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "submission_evidence": {
            "type": "object",
            "required": [
              "status",
              "authority_name",
              "evidence_reference",
              "raw_files_exposed",
              "credentials_exposed"
            ],
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "draft",
                  "ready_for_review",
                  "submitted"
                ]
              },
              "authority_name": {
                "type": "string"
              },
              "evidence_reference": {
                "type": "string"
              },
              "raw_files_exposed": {
                "type": "boolean",
                "const": false
              },
              "credentials_exposed": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "milestone": {
            "type": "object",
            "required": [
              "label",
              "status",
              "due_on"
            ],
            "properties": {
              "label": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "enum": [
                  "not_started",
                  "in_progress",
                  "blocked",
                  "completed"
                ]
              },
              "due_on": {
                "type": "string",
                "format": "date"
              }
            }
          },
          "design_change_audit": {
            "type": "object",
            "required": [
              "change_count",
              "latest_change_summary",
              "actor_identity_exposed",
              "raw_diff_exposed"
            ],
            "properties": {
              "change_count": {
                "type": "integer",
                "minimum": 0
              },
              "latest_change_summary": {
                "type": "string"
              },
              "actor_identity_exposed": {
                "type": "boolean",
                "const": false
              },
              "raw_diff_exposed": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "source_attribution": {
            "type": "object",
            "required": [
              "source_type",
              "freshness_status",
              "fixture_updated_at"
            ],
            "properties": {
              "source_type": {
                "type": "string",
                "const": "sandbox_fixture"
              },
              "freshness_status": {
                "type": "string",
                "const": "current"
              },
              "fixture_updated_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "redaction": {
            "type": "object",
            "required": [
              "professional_contact_details_exposed",
              "raw_documents_exposed",
              "private_comments_exposed",
              "authority_credentials_exposed"
            ],
            "properties": {
              "professional_contact_details_exposed": {
                "type": "boolean",
                "const": false
              },
              "raw_documents_exposed": {
                "type": "boolean",
                "const": false
              },
              "private_comments_exposed": {
                "type": "boolean",
                "const": false
              },
              "authority_credentials_exposed": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "side_effects": {
            "type": "object",
            "required": [
              "production_document_uploaded",
              "authority_submission_performed",
              "consultant_task_mutated",
              "milestone_mutated",
              "design_change_approved",
              "live_callback_sent"
            ],
            "properties": {
              "production_document_uploaded": {
                "type": "boolean",
                "const": false
              },
              "authority_submission_performed": {
                "type": "boolean",
                "const": false
              },
              "consultant_task_mutated": {
                "type": "boolean",
                "const": false
              },
              "milestone_mutated": {
                "type": "boolean",
                "const": false
              },
              "design_change_approved": {
                "type": "boolean",
                "const": false
              },
              "live_callback_sent": {
                "type": "boolean",
                "const": false
              }
            }
          }
        }
      },
      "DevelopmentProfessionalServicesProjectListResponse": {
        "type": "object",
        "required": [
          "projects",
          "access",
          "livemode",
          "request_id"
        ],
        "properties": {
          "projects": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/DevelopmentProfessionalServicesProject"
            }
          },
          "access": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "granted_scopes",
              "sandbox_fixture_mode",
              "live_project_reads",
              "blocked_actions"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "sandbox_fixture_mode": {
                "type": "string",
                "const": "read_only"
              },
              "live_project_reads": {
                "type": "string",
                "const": "deferred"
              },
              "blocked_actions": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "const": false
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "ValuationAppraisalCase": {
        "type": "object",
        "required": [
          "id",
          "fixture_id",
          "display_label",
          "case_status",
          "valuation_purpose",
          "property_facts",
          "comparable_evidence",
          "inspection",
          "professional_review",
          "handoff",
          "source_attribution",
          "redaction",
          "side_effects"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "fixture_id": {
            "type": "string"
          },
          "display_label": {
            "type": "string"
          },
          "case_status": {
            "type": "string",
            "enum": [
              "evidence_review",
              "inspection_review",
              "professional_review"
            ]
          },
          "valuation_purpose": {
            "type": "string",
            "enum": [
              "mortgage_security",
              "sale_advice",
              "portfolio_review"
            ]
          },
          "property_facts": {
            "type": "object",
            "required": [
              "asset_type",
              "tenure",
              "planning_area",
              "exact_address_exposed",
              "unit_identifier_exposed",
              "ownership_identity_exposed"
            ],
            "properties": {
              "asset_type": {
                "type": "string",
                "enum": [
                  "residential_apartment",
                  "landed_residential",
                  "commercial_unit"
                ]
              },
              "tenure": {
                "type": "string",
                "enum": [
                  "freehold",
                  "leasehold"
                ]
              },
              "planning_area": {
                "type": "string"
              },
              "exact_address_exposed": {
                "type": "boolean",
                "const": false
              },
              "unit_identifier_exposed": {
                "type": "boolean",
                "const": false
              },
              "ownership_identity_exposed": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "comparable_evidence": {
            "type": "object",
            "required": [
              "comparable_count",
              "evidence_period",
              "source_label",
              "source_records_exposed",
              "adjustment_notes_exposed"
            ],
            "properties": {
              "comparable_count": {
                "type": "integer",
                "minimum": 0
              },
              "evidence_period": {
                "type": "string"
              },
              "source_label": {
                "type": "string"
              },
              "source_records_exposed": {
                "type": "boolean",
                "const": false
              },
              "adjustment_notes_exposed": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "inspection": {
            "type": "object",
            "required": [
              "status",
              "access_instructions_exposed",
              "occupant_identity_exposed"
            ],
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "not_scheduled",
                  "scheduled",
                  "completed"
                ]
              },
              "access_instructions_exposed": {
                "type": "boolean",
                "const": false
              },
              "occupant_identity_exposed": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "professional_review": {
            "type": "object",
            "required": [
              "required",
              "status",
              "automated_official_valuation"
            ],
            "properties": {
              "required": {
                "type": "boolean",
                "const": true
              },
              "status": {
                "type": "string",
                "enum": [
                  "pending_registered_valuer_review",
                  "review_in_progress",
                  "review_complete"
                ]
              },
              "automated_official_valuation": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "handoff": {
            "type": "object",
            "required": [
              "audience",
              "status",
              "recipient_identity_exposed",
              "report_document_exposed"
            ],
            "properties": {
              "audience": {
                "type": "string",
                "enum": [
                  "client",
                  "lender",
                  "owner"
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "not_sent",
                  "ready_for_professional_review",
                  "professionally_released"
                ]
              },
              "recipient_identity_exposed": {
                "type": "boolean",
                "const": false
              },
              "report_document_exposed": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "source_attribution": {
            "type": "object",
            "required": [
              "source_type",
              "freshness_status",
              "fixture_updated_at"
            ],
            "properties": {
              "source_type": {
                "type": "string",
                "const": "sandbox_fixture"
              },
              "freshness_status": {
                "type": "string",
                "const": "current"
              },
              "fixture_updated_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "redaction": {
            "type": "object",
            "required": [
              "exact_address_exposed",
              "client_or_lender_contact_exposed",
              "raw_reports_exposed",
              "access_instructions_exposed",
              "credentials_exposed"
            ],
            "properties": {
              "exact_address_exposed": {
                "type": "boolean",
                "const": false
              },
              "client_or_lender_contact_exposed": {
                "type": "boolean",
                "const": false
              },
              "raw_reports_exposed": {
                "type": "boolean",
                "const": false
              },
              "access_instructions_exposed": {
                "type": "boolean",
                "const": false
              },
              "credentials_exposed": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "side_effects": {
            "type": "object",
            "required": [
              "official_valuation_record_created",
              "inspection_scheduled",
              "valuation_report_issued",
              "client_or_lender_handoff_sent",
              "comparable_evidence_mutated",
              "live_callback_sent"
            ],
            "properties": {
              "official_valuation_record_created": {
                "type": "boolean",
                "const": false
              },
              "inspection_scheduled": {
                "type": "boolean",
                "const": false
              },
              "valuation_report_issued": {
                "type": "boolean",
                "const": false
              },
              "client_or_lender_handoff_sent": {
                "type": "boolean",
                "const": false
              },
              "comparable_evidence_mutated": {
                "type": "boolean",
                "const": false
              },
              "live_callback_sent": {
                "type": "boolean",
                "const": false
              }
            }
          }
        }
      },
      "ValuationAppraisalCaseListResponse": {
        "type": "object",
        "required": [
          "cases",
          "access",
          "livemode",
          "request_id"
        ],
        "properties": {
          "cases": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ValuationAppraisalCase"
            }
          },
          "access": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "granted_scopes",
              "sandbox_fixture_mode",
              "live_case_reads",
              "blocked_actions"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "sandbox_fixture_mode": {
                "type": "string",
                "const": "read_only"
              },
              "live_case_reads": {
                "type": "string",
                "const": "deferred"
              },
              "blocked_actions": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "const": false
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "ValuationEstimateResponse": {
        "type": "object",
        "required": [
          "valuation",
          "disclaimer",
          "attribution",
          "livemode",
          "request_id"
        ],
        "properties": {
          "valuation": {
            "type": "object",
            "description": "The valuation engine result contract, unchanged from the public page.",
            "required": [
              "engine_version",
              "model_build_id",
              "subject",
              "side",
              "status",
              "estimate",
              "range",
              "confidence",
              "comparable_count",
              "comparables",
              "assumptions",
              "reasons",
              "data_as_of",
              "segment_accuracy"
            ],
            "properties": {
              "engine_version": {
                "type": "string"
              },
              "model_build_id": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "subject": {
                "type": [
                  "object",
                  "null"
                ],
                "description": "The home as the engine valued it."
              },
              "side": {
                "type": "string",
                "enum": [
                  "sale",
                  "rent"
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "estimate",
                  "range",
                  "comparables",
                  "unsupported"
                ],
                "description": "What the segment accuracy gate and the request allow, best first."
              },
              "estimate": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "range": {
                "type": [
                  "object",
                  "null"
                ],
                "required": [
                  "low",
                  "high"
                ],
                "properties": {
                  "low": {
                    "type": "number"
                  },
                  "high": {
                    "type": "number"
                  }
                }
              },
              "confidence": {
                "type": [
                  "string",
                  "null"
                ],
                "enum": [
                  "high",
                  "medium",
                  "low",
                  null
                ]
              },
              "comparable_count": {
                "type": "integer",
                "minimum": 0
              },
              "comparables": {
                "type": "array",
                "maxItems": 5,
                "items": {
                  "type": "object",
                  "required": [
                    "month",
                    "price",
                    "psf",
                    "floor_area_sqm",
                    "floor_band",
                    "location"
                  ],
                  "properties": {
                    "month": {
                      "type": "string",
                      "pattern": "^\\d{4}-\\d{2}$"
                    },
                    "price": {
                      "type": "number"
                    },
                    "psf": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "floor_area_sqm": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "land_area_sqm": {
                      "type": [
                        "number",
                        "null"
                      ]
                    },
                    "floor_area_range": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "floor_band": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "description": "Storey band such as `07 TO 09`."
                    },
                    "location": {
                      "type": "string",
                      "enum": [
                        "same_block",
                        "same_street",
                        "same_project",
                        "same_area"
                      ]
                    }
                  }
                }
              },
              "assumptions": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "reasons": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "missing_inputs": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "accuracy_inputs": {
                "type": "string",
                "enum": [
                  "full",
                  "blank",
                  "unit"
                ]
              },
              "unmatched_unit": {
                "type": "string",
                "description": "Condo sale only: the requested unit, such as #16-29, when its stack has no recorded sale, so its floor area is not known."
              },
              "data_as_of": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "segment_accuracy": {
                "type": [
                  "object",
                  "null"
                ],
                "description": "The segment's latest weekly holdout accuracy, in percent."
              },
              "rent_benchmark": {
                "type": [
                  "object",
                  "null"
                ],
                "description": "Strata commercial only: the closest REALIS median gross monthly rent per square foot (`median_rent_psf`) and its `rental_contracts`, for the `property_type`, `geography_level` and `geography`, `floor_area_band` and lease months `lease_from` to `lease_to`. A market figure, not an estimate."
              }
            }
          },
          "disclaimer": {
            "type": "string",
            "const": "An automated estimate from recorded transactions, not a valuation by a licensed valuer. Do not rely on it for a loan, sale or legal decision."
          },
          "attribution": {
            "type": "object",
            "required": [
              "text",
              "url"
            ],
            "properties": {
              "text": {
                "type": "string",
                "const": "Estimate by Homejourney"
              },
              "url": {
                "type": "string",
                "format": "uri"
              }
            }
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "ValuationSubjectsResponse": {
        "type": "object",
        "required": [
          "subjects",
          "attribution",
          "livemode",
          "request_id"
        ],
        "properties": {
          "subjects": {
            "type": "array",
            "maxItems": 8,
            "items": {
              "type": "object",
              "required": [
                "segment",
                "display_address"
              ],
              "description": "An HDB block (`block`, `street`, `town`, `flat_types`), a private development (`project`, `street`, `district`), a landed street (`street`, `district`, `house_types`) or a commercial or industrial project (`project`, `street`, `district`, `property_types`).",
              "properties": {
                "segment": {
                  "type": "string",
                  "enum": [
                    "hdb",
                    "private_non_landed",
                    "landed",
                    "strata_commercial",
                    "strata_industrial",
                    "whole_industrial"
                  ]
                },
                "display_address": {
                  "type": "string"
                },
                "block": {
                  "type": "string"
                },
                "street": {
                  "type": "string"
                },
                "town": {
                  "type": "string"
                },
                "flat_types": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "lease_start_year": {
                  "type": [
                    "integer",
                    "null"
                  ]
                },
                "project": {
                  "type": "string"
                },
                "district": {
                  "type": "integer",
                  "minimum": 1,
                  "maximum": 28
                },
                "planning_area": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "property_type": {
                  "type": "string"
                },
                "house_types": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "property_types": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "tenure": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "enum": [
                    "freehold",
                    "leasehold",
                    null
                  ]
                }
              }
            }
          },
          "attribution": {
            "type": "object",
            "required": [
              "text",
              "url"
            ],
            "properties": {
              "text": {
                "type": "string",
                "const": "Estimate by Homejourney"
              },
              "url": {
                "type": "string",
                "format": "uri"
              }
            }
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "ValuationEmbedKeyCreateRequest": {
        "type": "object",
        "required": [
          "label",
          "allowed_origins"
        ],
        "additionalProperties": false,
        "properties": {
          "label": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "allowed_origins": {
            "type": "array",
            "minItems": 1,
            "maxItems": 5,
            "items": {
              "type": "string",
              "maxLength": 200,
              "description": "An exact origin."
            }
          }
        }
      },
      "ValuationEmbedKeyRevokeRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "reason": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          }
        }
      },
      "ValuationEmbedKeyResponse": {
        "type": "object",
        "required": [
          "embed_key",
          "livemode",
          "request_id"
        ],
        "properties": {
          "embed_key": {
            "type": "object",
            "required": [
              "id",
              "embed_key",
              "label",
              "allowed_origins",
              "status",
              "created_at",
              "revoked_at"
            ],
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "embed_key": {
                "type": "string",
                "pattern": "^hje_(test|live)_[A-Za-z0-9_-]{32}$",
                "description": "The publishable key the widget script sends as `embed_key`."
              },
              "label": {
                "type": "string"
              },
              "allowed_origins": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "status": {
                "type": "string",
                "enum": [
                  "active",
                  "revoked"
                ]
              },
              "created_at": {
                "type": "string",
                "format": "date-time"
              },
              "revoked_at": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              }
            }
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "ValuationEmbedKeyListResponse": {
        "type": "object",
        "required": [
          "embed_keys",
          "livemode",
          "request_id"
        ],
        "properties": {
          "embed_keys": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "embed_key",
                "label",
                "allowed_origins",
                "status",
                "created_at",
                "revoked_at"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "embed_key": {
                  "type": "string",
                  "pattern": "^hje_(test|live)_[A-Za-z0-9_-]{32}$",
                  "description": "The publishable key the widget script sends as `embed_key`."
                },
                "label": {
                  "type": "string"
                },
                "allowed_origins": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "active",
                    "revoked"
                  ]
                },
                "created_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "revoked_at": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                }
              }
            }
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "ListingFeedListing": {
        "type": "object",
        "required": [
          "object",
          "external_ref",
          "status",
          "listing_id",
          "revision",
          "revision_status",
          "reason_codes",
          "hidden_reasons",
          "updated_at"
        ],
        "properties": {
          "object": {
            "type": "string",
            "const": "listing_feed_listing"
          },
          "external_ref": {
            "type": "string",
            "description": "The partner's own listing reference."
          },
          "status": {
            "type": "string",
            "enum": [
              "in_review",
              "published",
              "rejected",
              "withdrawn",
              "expired"
            ],
            "description": "A published listing stays `published` while a later revision is in review, rejected or expired; `revision_status` reports that revision."
          },
          "listing_id": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid",
            "description": "The Homejourney listing, once published."
          },
          "revision": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 1
          },
          "revision_status": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "in_review",
              "approved",
              "rejected",
              "superseded",
              "expired",
              null
            ]
          },
          "reason_codes": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Why the latest revision was rejected."
          },
          "hidden_reasons": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Why a published listing is not currently shown in search."
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ListingFeedAuthority": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "authority_type",
          "authority_reference",
          "authority_signed_on",
          "authority_expires_on",
          "owner_consent_to_advertise",
          "media_rights_confirmed",
          "attestation_version"
        ],
        "description": "The agency's attestation of its marketing authority. The agency keeps the agreement; Homejourney stores this attestation.",
        "properties": {
          "authority_type": {
            "type": "string",
            "enum": [
              "exclusive_marketing",
              "non_exclusive_marketing",
              "estate_agency_agreement"
            ]
          },
          "authority_reference": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "authority_signed_on": {
            "type": "string",
            "format": "date"
          },
          "authority_expires_on": {
            "type": "string",
            "format": "date",
            "description": "Not before `authority_signed_on` or today in Singapore. The listing leaves search when it passes."
          },
          "owner_consent_to_advertise": {
            "type": "boolean",
            "const": true
          },
          "media_rights_confirmed": {
            "type": "boolean",
            "const": true
          },
          "attestation_version": {
            "type": "string",
            "minLength": 1,
            "maxLength": 64
          }
        }
      },
      "ListingFeedPutRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "salesperson_registration_no",
          "authority"
        ],
        "description": "The MLS listing fields, the CEA salesperson who markets the listing, and the authority. A change to only `price`, `partner_availability_status`, `partner_last_seen_at`, `partner_expires_at` or `available_units_count` on a published listing applies without review; any other change is a new revision.",
        "properties": {
          "title": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500
          },
          "development_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500
          },
          "address": {
            "type": "string",
            "minLength": 1,
            "maxLength": 500
          },
          "unit": {
            "type": "string",
            "maxLength": 50
          },
          "postal_code": {
            "type": "string",
            "pattern": "^\\d{6}$"
          },
          "district": {
            "type": "string",
            "maxLength": 50
          },
          "price": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "bedrooms": {
            "type": "integer",
            "minimum": 0,
            "maximum": 20
          },
          "bathrooms": {
            "type": "integer",
            "minimum": 0,
            "maximum": 20
          },
          "square_feet": {
            "type": "number",
            "exclusiveMinimum": 0
          },
          "property_type": {
            "type": "string",
            "enum": [
              "HDB",
              "Condominium",
              "Landed",
              "Commercial"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "For Sale",
              "For Rent"
            ]
          },
          "description": {
            "type": "string",
            "maxLength": 5000
          },
          "images": {
            "type": "array",
            "maxItems": 30,
            "items": {
              "type": "string",
              "format": "uri"
            }
          },
          "latitude": {
            "type": "number",
            "minimum": -90,
            "maximum": 90
          },
          "longitude": {
            "type": "number",
            "minimum": -180,
            "maximum": 180
          },
          "available_from": {
            "type": "string",
            "format": "date"
          },
          "furnishing_level": {
            "type": "string"
          },
          "tenure": {
            "type": "string",
            "minLength": 1,
            "maxLength": 100
          },
          "built_year": {
            "type": "integer",
            "minimum": 1800,
            "maximum": 2100
          },
          "lease_duration_months": {
            "type": "integer",
            "minimum": 1,
            "maximum": 60
          },
          "subletting_type": {
            "type": "string"
          },
          "house_rules": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "included_amenities": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "partner_availability_status": {
            "type": "string",
            "enum": [
              "available",
              "limited",
              "unavailable"
            ]
          },
          "partner_last_seen_at": {
            "type": "string",
            "format": "date-time"
          },
          "partner_expires_at": {
            "type": "string",
            "format": "date-time"
          },
          "available_units_count": {
            "type": "integer",
            "minimum": 0
          },
          "salesperson_registration_no": {
            "type": "string",
            "pattern": "^R[0-9]{6,7}[A-Z]$",
            "description": "Current on the CEA register and registered under the agency licence."
          },
          "authority": {
            "$ref": "#/components/schemas/ListingFeedAuthority"
          }
        }
      },
      "ListingFeedListingResponse": {
        "type": "object",
        "required": [
          "listing",
          "livemode",
          "request_id"
        ],
        "properties": {
          "listing": {
            "$ref": "#/components/schemas/ListingFeedListing"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "ListingFeedListingListResponse": {
        "type": "object",
        "required": [
          "listings",
          "pagination",
          "livemode",
          "request_id"
        ],
        "properties": {
          "listings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListingFeedListing"
            }
          },
          "pagination": {
            "type": "object",
            "required": [
              "limit",
              "next_cursor"
            ],
            "properties": {
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              },
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "InstitutionalPortfolioSummary": {
        "type": "object",
        "required": [
          "id",
          "display_label",
          "reporting_period",
          "aggregation",
          "lease_posture",
          "valuation_posture",
          "operations",
          "reporting",
          "source_attribution",
          "redaction",
          "side_effects"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "display_label": {
            "type": "string"
          },
          "reporting_period": {
            "type": "string"
          },
          "aggregation": {
            "type": "object",
            "required": [
              "asset_count",
              "planning_area_count",
              "occupancy_band",
              "occupancy_exact_exposed",
              "asset_records_exposed",
              "unit_records_exposed"
            ],
            "properties": {
              "asset_count": {
                "type": "integer",
                "minimum": 0
              },
              "planning_area_count": {
                "type": "integer",
                "minimum": 0
              },
              "occupancy_band": {
                "type": "string",
                "const": "eighty_to_ninety_percent"
              },
              "occupancy_exact_exposed": {
                "type": "boolean",
                "const": false
              },
              "asset_records_exposed": {
                "type": "boolean",
                "const": false
              },
              "unit_records_exposed": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "lease_posture": {
            "type": "object",
            "required": [
              "active_lease_count_band",
              "tenant_identity_exposed",
              "lease_terms_exposed",
              "rent_amounts_exposed",
              "expiry_schedule_exposed"
            ],
            "properties": {
              "active_lease_count_band": {
                "type": "string",
                "const": "twenty_to_forty"
              },
              "tenant_identity_exposed": {
                "type": "boolean",
                "const": false
              },
              "lease_terms_exposed": {
                "type": "boolean",
                "const": false
              },
              "rent_amounts_exposed": {
                "type": "boolean",
                "const": false
              },
              "expiry_schedule_exposed": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "valuation_posture": {
            "type": "object",
            "required": [
              "coverage_status",
              "valuation_amounts_exposed",
              "raw_reports_exposed",
              "professional_review_required"
            ],
            "properties": {
              "coverage_status": {
                "type": "string",
                "const": "professional_review_in_progress"
              },
              "valuation_amounts_exposed": {
                "type": "boolean",
                "const": false
              },
              "raw_reports_exposed": {
                "type": "boolean",
                "const": false
              },
              "professional_review_required": {
                "type": "boolean",
                "const": true
              }
            }
          },
          "operations": {
            "type": "object",
            "required": [
              "open_maintenance_count_band",
              "capex_status",
              "compliance_status",
              "vendor_identity_exposed",
              "work_order_details_exposed"
            ],
            "properties": {
              "open_maintenance_count_band": {
                "type": "string",
                "const": "one_to_five"
              },
              "capex_status": {
                "type": "string",
                "const": "review_required"
              },
              "compliance_status": {
                "type": "string",
                "const": "review_required"
              },
              "vendor_identity_exposed": {
                "type": "boolean",
                "const": false
              },
              "work_order_details_exposed": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "reporting": {
            "type": "object",
            "required": [
              "investor_reporting_status",
              "investor_reports_exposed",
              "source_data_export_exposed",
              "data_review_required"
            ],
            "properties": {
              "investor_reporting_status": {
                "type": "string",
                "const": "not_generated"
              },
              "investor_reports_exposed": {
                "type": "boolean",
                "const": false
              },
              "source_data_export_exposed": {
                "type": "boolean",
                "const": false
              },
              "data_review_required": {
                "type": "boolean",
                "const": true
              }
            }
          },
          "source_attribution": {
            "type": "object",
            "required": [
              "source_type",
              "freshness_status",
              "fixture_updated_at"
            ],
            "properties": {
              "source_type": {
                "type": "string",
                "const": "sandbox_fixture"
              },
              "freshness_status": {
                "type": "string",
                "const": "current"
              },
              "fixture_updated_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "redaction": {
            "type": "object",
            "required": [
              "exact_addresses_exposed",
              "asset_or_unit_identifiers_exposed",
              "tenant_identity_exposed",
              "lease_terms_exposed",
              "valuation_amounts_exposed",
              "vendor_details_exposed",
              "investor_reports_exposed",
              "credentials_exposed"
            ],
            "properties": {
              "exact_addresses_exposed": {
                "type": "boolean",
                "const": false
              },
              "asset_or_unit_identifiers_exposed": {
                "type": "boolean",
                "const": false
              },
              "tenant_identity_exposed": {
                "type": "boolean",
                "const": false
              },
              "lease_terms_exposed": {
                "type": "boolean",
                "const": false
              },
              "valuation_amounts_exposed": {
                "type": "boolean",
                "const": false
              },
              "vendor_details_exposed": {
                "type": "boolean",
                "const": false
              },
              "investor_reports_exposed": {
                "type": "boolean",
                "const": false
              },
              "credentials_exposed": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "side_effects": {
            "type": "object",
            "required": [
              "portfolio_record_mutated",
              "lease_record_mutated",
              "maintenance_or_capex_action_created",
              "compliance_action_created",
              "investor_report_generated",
              "live_callback_sent"
            ],
            "properties": {
              "portfolio_record_mutated": {
                "type": "boolean",
                "const": false
              },
              "lease_record_mutated": {
                "type": "boolean",
                "const": false
              },
              "maintenance_or_capex_action_created": {
                "type": "boolean",
                "const": false
              },
              "compliance_action_created": {
                "type": "boolean",
                "const": false
              },
              "investor_report_generated": {
                "type": "boolean",
                "const": false
              },
              "live_callback_sent": {
                "type": "boolean",
                "const": false
              }
            }
          }
        }
      },
      "InstitutionalPortfolioSummaryResponse": {
        "type": "object",
        "required": [
          "portfolio_summary",
          "access",
          "livemode",
          "request_id"
        ],
        "properties": {
          "portfolio_summary": {
            "$ref": "#/components/schemas/InstitutionalPortfolioSummary"
          },
          "access": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "granted_scopes",
              "sandbox_fixture_mode",
              "live_portfolio_reads",
              "blocked_actions"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "sandbox_fixture_mode": {
                "type": "string",
                "const": "aggregate_read_only"
              },
              "live_portfolio_reads": {
                "type": "string",
                "const": "deferred"
              },
              "blocked_actions": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "const": false
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PropertyManagementSummary": {
        "type": "object",
        "required": [
          "id",
          "display_label",
          "reporting_period",
          "estate_posture",
          "resident_privacy",
          "operations",
          "vendor_and_finance_privacy",
          "source_attribution",
          "redaction",
          "side_effects"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "display_label": {
            "type": "string"
          },
          "reporting_period": {
            "type": "string"
          },
          "estate_posture": {
            "type": "object",
            "required": [
              "management_mode",
              "unit_count_band",
              "occupancy_band",
              "unit_records_exposed",
              "exact_addresses_exposed",
              "strata_lot_identifiers_exposed"
            ],
            "properties": {
              "management_mode": {
                "type": "string",
                "const": "mcst"
              },
              "unit_count_band": {
                "type": "string",
                "const": "one_hundred_to_two_hundred"
              },
              "occupancy_band": {
                "type": "string",
                "const": "eighty_to_ninety_percent"
              },
              "unit_records_exposed": {
                "type": "boolean",
                "const": false
              },
              "exact_addresses_exposed": {
                "type": "boolean",
                "const": false
              },
              "strata_lot_identifiers_exposed": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "resident_privacy": {
            "type": "object",
            "required": [
              "occupancy_exact_exposed",
              "resident_identity_exposed",
              "owner_identity_exposed",
              "tenant_identity_exposed",
              "contact_details_exposed",
              "access_credentials_exposed"
            ],
            "properties": {
              "occupancy_exact_exposed": {
                "type": "boolean",
                "const": false
              },
              "resident_identity_exposed": {
                "type": "boolean",
                "const": false
              },
              "owner_identity_exposed": {
                "type": "boolean",
                "const": false
              },
              "tenant_identity_exposed": {
                "type": "boolean",
                "const": false
              },
              "contact_details_exposed": {
                "type": "boolean",
                "const": false
              },
              "access_credentials_exposed": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "operations": {
            "type": "object",
            "required": [
              "open_maintenance_count_band",
              "notice_status",
              "incident_status",
              "work_order_details_exposed",
              "notice_contents_exposed",
              "incident_evidence_exposed"
            ],
            "properties": {
              "open_maintenance_count_band": {
                "type": "string",
                "const": "six_to_ten"
              },
              "notice_status": {
                "type": "string",
                "const": "summary_only"
              },
              "incident_status": {
                "type": "string",
                "const": "review_required"
              },
              "work_order_details_exposed": {
                "type": "boolean",
                "const": false
              },
              "notice_contents_exposed": {
                "type": "boolean",
                "const": false
              },
              "incident_evidence_exposed": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "vendor_and_finance_privacy": {
            "type": "object",
            "required": [
              "vendor_count_band",
              "vendor_identity_exposed",
              "vendor_contact_details_exposed",
              "vendor_contract_or_payment_details_exposed",
              "budget_or_levy_amounts_exposed",
              "access_control_data_exposed",
              "estate_operator_review_required"
            ],
            "properties": {
              "vendor_count_band": {
                "type": "string",
                "const": "one_to_five"
              },
              "vendor_identity_exposed": {
                "type": "boolean",
                "const": false
              },
              "vendor_contact_details_exposed": {
                "type": "boolean",
                "const": false
              },
              "vendor_contract_or_payment_details_exposed": {
                "type": "boolean",
                "const": false
              },
              "budget_or_levy_amounts_exposed": {
                "type": "boolean",
                "const": false
              },
              "access_control_data_exposed": {
                "type": "boolean",
                "const": false
              },
              "estate_operator_review_required": {
                "type": "boolean",
                "const": true
              }
            }
          },
          "source_attribution": {
            "type": "object",
            "required": [
              "source_type",
              "freshness_status",
              "fixture_updated_at"
            ],
            "properties": {
              "source_type": {
                "type": "string",
                "const": "sandbox_fixture"
              },
              "freshness_status": {
                "type": "string",
                "const": "current"
              },
              "fixture_updated_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "redaction": {
            "type": "object",
            "required": [
              "unit_or_strata_identifiers_exposed",
              "exact_addresses_exposed",
              "resident_or_occupier_identity_exposed",
              "vendor_details_exposed",
              "raw_notice_or_incident_records_exposed",
              "budget_or_levy_amounts_exposed",
              "access_control_data_exposed",
              "credentials_exposed"
            ],
            "properties": {
              "unit_or_strata_identifiers_exposed": {
                "type": "boolean",
                "const": false
              },
              "exact_addresses_exposed": {
                "type": "boolean",
                "const": false
              },
              "resident_or_occupier_identity_exposed": {
                "type": "boolean",
                "const": false
              },
              "vendor_details_exposed": {
                "type": "boolean",
                "const": false
              },
              "raw_notice_or_incident_records_exposed": {
                "type": "boolean",
                "const": false
              },
              "budget_or_levy_amounts_exposed": {
                "type": "boolean",
                "const": false
              },
              "access_control_data_exposed": {
                "type": "boolean",
                "const": false
              },
              "credentials_exposed": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "side_effects": {
            "type": "object",
            "required": [
              "unit_or_resident_record_mutated",
              "maintenance_work_order_created",
              "notice_or_incident_action_created",
              "vendor_or_payment_record_mutated",
              "levy_or_budget_action_created",
              "access_control_action_created",
              "source_export_generated",
              "live_callback_sent"
            ],
            "properties": {
              "unit_or_resident_record_mutated": {
                "type": "boolean",
                "const": false
              },
              "maintenance_work_order_created": {
                "type": "boolean",
                "const": false
              },
              "notice_or_incident_action_created": {
                "type": "boolean",
                "const": false
              },
              "vendor_or_payment_record_mutated": {
                "type": "boolean",
                "const": false
              },
              "levy_or_budget_action_created": {
                "type": "boolean",
                "const": false
              },
              "access_control_action_created": {
                "type": "boolean",
                "const": false
              },
              "source_export_generated": {
                "type": "boolean",
                "const": false
              },
              "live_callback_sent": {
                "type": "boolean",
                "const": false
              }
            }
          }
        }
      },
      "PropertyManagementSummaryResponse": {
        "type": "object",
        "required": [
          "property_management_summary",
          "access",
          "livemode",
          "request_id"
        ],
        "properties": {
          "property_management_summary": {
            "$ref": "#/components/schemas/PropertyManagementSummary"
          },
          "access": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "granted_scopes",
              "sandbox_fixture_mode",
              "live_property_management_reads",
              "blocked_actions"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "sandbox_fixture_mode": {
                "type": "string",
                "const": "privacy_minimized_aggregate_read_only"
              },
              "live_property_management_reads": {
                "type": "string",
                "const": "deferred"
              },
              "blocked_actions": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "const": false
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "SurveyTitleGeospatialSummary": {
        "type": "object",
        "required": [
          "id",
          "display_label",
          "context_area",
          "parcel_and_map_context",
          "title_posture",
          "source_evidence",
          "conflict_review",
          "authority_boundary",
          "redaction",
          "side_effects"
        ],
        "properties": {
          "id": {
            "type": "string",
            "const": "survey_title_geospatial_sandbox_context_alpha"
          },
          "display_label": {
            "type": "string",
            "const": "Sandbox Survey, Title and Geospatial Context"
          },
          "context_area": {
            "type": "string",
            "const": "Queenstown planning area"
          },
          "parcel_and_map_context": {
            "type": "object",
            "required": [
              "context_mode",
              "map_reference_status",
              "official_boundary_determination",
              "exact_cadastral_geometry_exposed",
              "exact_coordinates_exposed",
              "survey_plan_exposed"
            ],
            "properties": {
              "context_mode": {
                "type": "string",
                "const": "planning_area_only"
              },
              "map_reference_status": {
                "type": "string",
                "const": "generalized_reference_only"
              },
              "official_boundary_determination": {
                "type": "boolean",
                "const": false
              },
              "exact_cadastral_geometry_exposed": {
                "type": "boolean",
                "const": false
              },
              "exact_coordinates_exposed": {
                "type": "boolean",
                "const": false
              },
              "survey_plan_exposed": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "title_posture": {
            "type": "object",
            "required": [
              "title_record_status",
              "title_identifier_exposed",
              "ownership_identity_exposed",
              "encumbrance_or_caveat_details_exposed",
              "professional_title_search_required"
            ],
            "properties": {
              "title_record_status": {
                "type": "string",
                "const": "not_retrieved"
              },
              "title_identifier_exposed": {
                "type": "boolean",
                "const": false
              },
              "ownership_identity_exposed": {
                "type": "boolean",
                "const": false
              },
              "encumbrance_or_caveat_details_exposed": {
                "type": "boolean",
                "const": false
              },
              "professional_title_search_required": {
                "type": "boolean",
                "const": true
              }
            }
          },
          "source_evidence": {
            "type": "array",
            "minItems": 2,
            "maxItems": 2,
            "items": {
              "type": "object",
              "required": [
                "dataset_id",
                "source_id",
                "dataset_name",
                "source_agency",
                "source_name",
                "source_url_or_id",
                "retrieved_at",
                "valid_from",
                "valid_to",
                "license_label",
                "freshness_status",
                "confidence",
                "schema_version",
                "derived_from",
                "raw_source_payload_exposed"
              ],
              "properties": {
                "dataset_id": {
                  "type": "string"
                },
                "source_id": {
                  "type": "string"
                },
                "dataset_name": {
                  "type": "string"
                },
                "source_agency": {
                  "type": "string",
                  "enum": [
                    "SLA",
                    "URA"
                  ]
                },
                "source_name": {
                  "type": "string"
                },
                "source_url_or_id": {
                  "type": "string"
                },
                "retrieved_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "valid_from": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "valid_to": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "license_label": {
                  "type": "string",
                  "const": "Singapore Open Data Licence / agency terms review"
                },
                "freshness_status": {
                  "type": "string",
                  "enum": [
                    "fresh",
                    "stale"
                  ]
                },
                "confidence": {
                  "type": "number",
                  "minimum": 0,
                  "maximum": 1
                },
                "schema_version": {
                  "type": "string"
                },
                "derived_from": {
                  "type": "array",
                  "minItems": 1,
                  "items": {
                    "type": "string"
                  }
                },
                "raw_source_payload_exposed": {
                  "type": "boolean",
                  "const": false
                }
              }
            }
          },
          "conflict_review": {
            "type": "object",
            "required": [
              "winning_source_class",
              "compared_source_class",
              "not_silently_overwritten",
              "operator_review_visible",
              "professional_review_required"
            ],
            "properties": {
              "winning_source_class": {
                "type": "string",
                "const": "official_source"
              },
              "compared_source_class": {
                "type": "string",
                "const": "trusted_partner_feed"
              },
              "not_silently_overwritten": {
                "type": "boolean",
                "const": true
              },
              "operator_review_visible": {
                "type": "boolean",
                "const": true
              },
              "professional_review_required": {
                "type": "boolean",
                "const": true
              }
            }
          },
          "authority_boundary": {
            "type": "object",
            "required": [
              "informational_context_only",
              "authoritative_title_or_cadastral_determination",
              "registered_surveyor_or_lawyer_review_required"
            ],
            "properties": {
              "informational_context_only": {
                "type": "boolean",
                "const": true
              },
              "authoritative_title_or_cadastral_determination": {
                "type": "boolean",
                "const": false
              },
              "registered_surveyor_or_lawyer_review_required": {
                "type": "boolean",
                "const": true
              }
            }
          },
          "redaction": {
            "type": "object",
            "required": [
              "exact_address_exposed",
              "parcel_or_lot_identifier_exposed",
              "title_identifier_exposed",
              "owner_or_interested_party_identity_exposed",
              "exact_geometry_or_coordinates_exposed",
              "raw_source_payload_exposed",
              "credentials_exposed"
            ],
            "properties": {
              "exact_address_exposed": {
                "type": "boolean",
                "const": false
              },
              "parcel_or_lot_identifier_exposed": {
                "type": "boolean",
                "const": false
              },
              "title_identifier_exposed": {
                "type": "boolean",
                "const": false
              },
              "owner_or_interested_party_identity_exposed": {
                "type": "boolean",
                "const": false
              },
              "exact_geometry_or_coordinates_exposed": {
                "type": "boolean",
                "const": false
              },
              "raw_source_payload_exposed": {
                "type": "boolean",
                "const": false
              },
              "credentials_exposed": {
                "type": "boolean",
                "const": false
              }
            }
          },
          "side_effects": {
            "type": "object",
            "required": [
              "production_upstream_api_called",
              "title_or_ownership_record_mutated",
              "survey_plan_or_cadastral_record_mutated",
              "source_conflict_resolution_mutated",
              "official_submission_or_certification_created",
              "source_export_generated",
              "live_callback_sent"
            ],
            "properties": {
              "production_upstream_api_called": {
                "type": "boolean",
                "const": false
              },
              "title_or_ownership_record_mutated": {
                "type": "boolean",
                "const": false
              },
              "survey_plan_or_cadastral_record_mutated": {
                "type": "boolean",
                "const": false
              },
              "source_conflict_resolution_mutated": {
                "type": "boolean",
                "const": false
              },
              "official_submission_or_certification_created": {
                "type": "boolean",
                "const": false
              },
              "source_export_generated": {
                "type": "boolean",
                "const": false
              },
              "live_callback_sent": {
                "type": "boolean",
                "const": false
              }
            }
          }
        }
      },
      "SurveyTitleGeospatialSummaryResponse": {
        "type": "object",
        "required": [
          "survey_title_geospatial_summary",
          "access",
          "livemode",
          "request_id"
        ],
        "properties": {
          "survey_title_geospatial_summary": {
            "$ref": "#/components/schemas/SurveyTitleGeospatialSummary"
          },
          "access": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "granted_scopes",
              "sandbox_fixture_mode",
              "live_survey_title_geospatial_reads",
              "deferred_record_scopes",
              "blocked_actions"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "sandbox_fixture_mode": {
                "type": "string",
                "const": "official_source_attributed_read_only"
              },
              "live_survey_title_geospatial_reads": {
                "type": "string",
                "const": "deferred"
              },
              "deferred_record_scopes": {
                "type": "array",
                "prefixItems": [
                  {
                    "type": "string",
                    "const": "title_records.read"
                  },
                  {
                    "type": "string",
                    "const": "source_conflicts.read"
                  }
                ],
                "items": false,
                "minItems": 2,
                "maxItems": 2
              },
              "blocked_actions": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "authoritative_boundary_determination",
                    "title_record_search_or_retrieval",
                    "title_or_ownership_record_write",
                    "survey_plan_or_cadastral_record_write",
                    "source_conflict_resolution_write",
                    "official_submission_or_certification",
                    "source_data_export"
                  ]
                }
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "const": false
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "OfficialSourceListResponse": {
        "type": "object",
        "required": [
          "sources",
          "access",
          "livemode",
          "request_id"
        ],
        "properties": {
          "sources": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "source_id",
                "source_agency",
                "source_name",
                "source_category",
                "source_url_or_id",
                "license_label",
                "terms_review_status",
                "freshness_owner_present",
                "rollback_or_fallback_present",
                "sandbox_fixture_available",
                "public_display_allowed",
                "partner_access_allowed",
                "partner_facing_ready",
                "missing_requirements",
                "credential_class"
              ],
              "properties": {
                "source_id": {
                  "type": "string"
                },
                "source_agency": {
                  "type": "string"
                },
                "source_name": {
                  "type": "string"
                },
                "source_category": {
                  "type": "string"
                },
                "source_url_or_id": {
                  "type": "string"
                },
                "license_label": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "terms_review_status": {
                  "type": "string"
                },
                "freshness_owner_present": {
                  "type": "boolean"
                },
                "rollback_or_fallback_present": {
                  "type": "boolean"
                },
                "sandbox_fixture_available": {
                  "type": "boolean"
                },
                "public_display_allowed": {
                  "type": "boolean"
                },
                "partner_access_allowed": {
                  "type": "boolean"
                },
                "partner_facing_ready": {
                  "type": "boolean"
                },
                "missing_requirements": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "credential_class": {
                  "type": "string",
                  "enum": [
                    "none",
                    "public_key",
                    "protected_token",
                    "paid_credential",
                    "manual_only"
                  ]
                }
              }
            }
          },
          "access": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "granted_official_source_scopes",
              "actor_model",
              "live_upstream_access",
              "sandbox_fixture_mode",
              "upstream_credential_material_returned"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_official_source_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "actor_model": {
                "type": "string",
                "enum": [
                  "api_key_automation_client"
                ]
              },
              "live_upstream_access": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              },
              "sandbox_fixture_mode": {
                "type": "string",
                "enum": [
                  "read_only"
                ]
              },
              "upstream_credential_material_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "OfficialSourceDatasetsResponse": {
        "type": "object",
        "required": [
          "datasets",
          "access",
          "livemode",
          "request_id"
        ],
        "properties": {
          "datasets": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "dataset_id",
                "source_id",
                "dataset_name",
                "license_label",
                "freshness_status",
                "partner_access_allowed",
                "public_display_allowed",
                "attribution"
              ],
              "properties": {
                "dataset_id": {
                  "type": "string"
                },
                "source_id": {
                  "type": "string"
                },
                "dataset_name": {
                  "type": "string"
                },
                "license_label": {
                  "type": "string"
                },
                "freshness_status": {
                  "type": "string",
                  "enum": [
                    "fresh",
                    "aging",
                    "stale",
                    "outage_fallback",
                    "manual_review",
                    "disputed",
                    "terms_blocked",
                    "unknown"
                  ]
                },
                "partner_access_allowed": {
                  "type": "boolean"
                },
                "public_display_allowed": {
                  "type": "boolean"
                },
                "attribution": {
                  "type": "object",
                  "required": [
                    "source_agency",
                    "source_name",
                    "source_url_or_id",
                    "retrieved_at",
                    "valid_from",
                    "valid_to",
                    "license_label",
                    "freshness_status",
                    "confidence",
                    "schema_version",
                    "derived_from"
                  ],
                  "properties": {
                    "source_agency": {
                      "type": "string"
                    },
                    "source_name": {
                      "type": "string"
                    },
                    "source_url_or_id": {
                      "type": "string"
                    },
                    "retrieved_at": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "valid_from": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "valid_to": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "license_label": {
                      "type": "string"
                    },
                    "freshness_status": {
                      "type": "string",
                      "enum": [
                        "fresh",
                        "aging",
                        "stale",
                        "outage_fallback",
                        "manual_review",
                        "disputed",
                        "terms_blocked",
                        "unknown"
                      ]
                    },
                    "confidence": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    },
                    "schema_version": {
                      "type": "string"
                    },
                    "derived_from": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "access": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "granted_official_source_scopes",
              "actor_model",
              "live_upstream_access",
              "sandbox_fixture_mode",
              "upstream_credential_material_returned"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_official_source_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "actor_model": {
                "type": "string",
                "enum": [
                  "api_key_automation_client"
                ]
              },
              "live_upstream_access": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              },
              "sandbox_fixture_mode": {
                "type": "string",
                "enum": [
                  "read_only"
                ]
              },
              "upstream_credential_material_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "OfficialSourceFreshnessResponse": {
        "type": "object",
        "required": [
          "freshness",
          "access",
          "livemode",
          "request_id"
        ],
        "properties": {
          "freshness": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "dataset_id",
                "source_id",
                "dataset_name",
                "freshness_status",
                "retrieved_at",
                "valid_from",
                "valid_to",
                "license_label",
                "degraded_reason",
                "attribution"
              ],
              "properties": {
                "dataset_id": {
                  "type": "string"
                },
                "source_id": {
                  "type": "string"
                },
                "dataset_name": {
                  "type": "string"
                },
                "freshness_status": {
                  "type": "string",
                  "enum": [
                    "fresh",
                    "aging",
                    "stale",
                    "outage_fallback",
                    "manual_review",
                    "disputed",
                    "terms_blocked",
                    "unknown"
                  ]
                },
                "retrieved_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "valid_from": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "valid_to": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "license_label": {
                  "type": "string"
                },
                "degraded_reason": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "attribution": {
                  "type": "object",
                  "required": [
                    "source_agency",
                    "source_name",
                    "source_url_or_id",
                    "retrieved_at",
                    "valid_from",
                    "valid_to",
                    "license_label",
                    "freshness_status",
                    "confidence",
                    "schema_version",
                    "derived_from"
                  ],
                  "properties": {
                    "source_agency": {
                      "type": "string"
                    },
                    "source_name": {
                      "type": "string"
                    },
                    "source_url_or_id": {
                      "type": "string"
                    },
                    "retrieved_at": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "valid_from": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "valid_to": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "license_label": {
                      "type": "string"
                    },
                    "freshness_status": {
                      "type": "string",
                      "enum": [
                        "fresh",
                        "aging",
                        "stale",
                        "outage_fallback",
                        "manual_review",
                        "disputed",
                        "terms_blocked",
                        "unknown"
                      ]
                    },
                    "confidence": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    },
                    "schema_version": {
                      "type": "string"
                    },
                    "derived_from": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              }
            }
          },
          "access": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "granted_official_source_scopes",
              "actor_model",
              "live_upstream_access",
              "sandbox_fixture_mode",
              "upstream_credential_material_returned"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_official_source_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "actor_model": {
                "type": "string",
                "enum": [
                  "api_key_automation_client"
                ]
              },
              "live_upstream_access": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              },
              "sandbox_fixture_mode": {
                "type": "string",
                "enum": [
                  "read_only"
                ]
              },
              "upstream_credential_material_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "OfficialSourceRunsResponse": {
        "type": "object",
        "required": [
          "runs",
          "access",
          "livemode",
          "request_id"
        ],
        "properties": {
          "runs": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "run_id",
                "mode",
                "status",
                "source_id",
                "dataset_id",
                "started_at",
                "completed_at",
                "records_seen",
                "records_changed",
                "attribution_validation_performed",
                "production_upstream_api_called",
                "live_dataset_mutated"
              ],
              "properties": {
                "run_id": {
                  "type": "string"
                },
                "mode": {
                  "type": "string",
                  "enum": [
                    "fixture_refresh"
                  ]
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "succeeded",
                    "blocked_by_terms"
                  ]
                },
                "source_id": {
                  "type": "string"
                },
                "dataset_id": {
                  "type": "string"
                },
                "started_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "completed_at": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "records_seen": {
                  "type": "integer",
                  "minimum": 0
                },
                "records_changed": {
                  "type": "integer",
                  "minimum": 0
                },
                "attribution_validation_performed": {
                  "type": "boolean"
                },
                "production_upstream_api_called": {
                  "type": "boolean",
                  "enum": [
                    false
                  ]
                },
                "live_dataset_mutated": {
                  "type": "boolean",
                  "enum": [
                    false
                  ]
                }
              }
            }
          },
          "access": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "granted_official_source_scopes",
              "actor_model",
              "live_upstream_access",
              "sandbox_fixture_mode",
              "upstream_credential_material_returned"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_official_source_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "actor_model": {
                "type": "string",
                "enum": [
                  "api_key_automation_client"
                ]
              },
              "live_upstream_access": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              },
              "sandbox_fixture_mode": {
                "type": "string",
                "enum": [
                  "read_only"
                ]
              },
              "upstream_credential_material_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "OfficialSourceFixtureRefreshRequest": {
        "type": "object",
        "additionalProperties": false,
        "properties": {
          "source_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          },
          "dataset_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128
          }
        }
      },
      "OfficialSourceFixtureRefreshResponse": {
        "type": "object",
        "required": [
          "refresh",
          "runs",
          "side_effects",
          "access",
          "livemode",
          "request_id"
        ],
        "properties": {
          "refresh": {
            "type": "object",
            "required": [
              "mode",
              "accepted",
              "source_id",
              "dataset_id"
            ],
            "properties": {
              "mode": {
                "type": "string",
                "enum": [
                  "deterministic_sandbox_fixture"
                ]
              },
              "accepted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "source_id": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "dataset_id": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "runs": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "run_id",
                "mode",
                "status",
                "source_id",
                "dataset_id",
                "started_at",
                "completed_at",
                "records_seen",
                "records_changed",
                "attribution_validation_performed",
                "production_upstream_api_called",
                "live_dataset_mutated"
              ],
              "properties": {
                "run_id": {
                  "type": "string"
                },
                "mode": {
                  "type": "string",
                  "enum": [
                    "fixture_refresh"
                  ]
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "succeeded",
                    "blocked_by_terms"
                  ]
                },
                "source_id": {
                  "type": "string"
                },
                "dataset_id": {
                  "type": "string"
                },
                "started_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "completed_at": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "records_seen": {
                  "type": "integer",
                  "minimum": 0
                },
                "records_changed": {
                  "type": "integer",
                  "minimum": 0
                },
                "attribution_validation_performed": {
                  "type": "boolean"
                },
                "production_upstream_api_called": {
                  "type": "boolean",
                  "enum": [
                    false
                  ]
                },
                "live_dataset_mutated": {
                  "type": "boolean",
                  "enum": [
                    false
                  ]
                }
              }
            }
          },
          "side_effects": {
            "type": "object",
            "required": [
              "production_upstream_api_called",
              "production_credential_used",
              "live_callback_sent",
              "live_dataset_mutated",
              "production_truth_published",
              "raw_credential_material_returned",
              "restricted_payload_returned",
              "production_webhook_sent",
              "fixture_state_mutated",
              "idempotency_and_request_events_only"
            ],
            "properties": {
              "production_upstream_api_called": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "production_credential_used": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "live_callback_sent": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "live_dataset_mutated": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "production_truth_published": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_credential_material_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "restricted_payload_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "production_webhook_sent": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "fixture_state_mutated": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "idempotency_and_request_events_only": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "access": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "granted_official_source_scopes",
              "actor_model",
              "live_upstream_access",
              "sandbox_fixture_mode",
              "upstream_credential_material_returned"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_official_source_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "actor_model": {
                "type": "string",
                "enum": [
                  "api_key_automation_client"
                ]
              },
              "live_upstream_access": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              },
              "sandbox_fixture_mode": {
                "type": "string",
                "enum": [
                  "read_only"
                ]
              },
              "upstream_credential_material_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "OfficialSourceRecordsSearchResponse": {
        "type": "object",
        "required": [
          "records",
          "access",
          "livemode",
          "request_id"
        ],
        "properties": {
          "records": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "record_id",
                "dataset_id",
                "source_id",
                "data",
                "attribution",
                "conflict"
              ],
              "properties": {
                "record_id": {
                  "type": "string"
                },
                "dataset_id": {
                  "type": "string"
                },
                "source_id": {
                  "type": "string"
                },
                "data": {
                  "type": "object",
                  "additionalProperties": true
                },
                "attribution": {
                  "type": "object",
                  "required": [
                    "source_agency",
                    "source_name",
                    "source_url_or_id",
                    "retrieved_at",
                    "valid_from",
                    "valid_to",
                    "license_label",
                    "freshness_status",
                    "confidence",
                    "schema_version",
                    "derived_from"
                  ],
                  "properties": {
                    "source_agency": {
                      "type": "string"
                    },
                    "source_name": {
                      "type": "string"
                    },
                    "source_url_or_id": {
                      "type": "string"
                    },
                    "retrieved_at": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "valid_from": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "valid_to": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "license_label": {
                      "type": "string"
                    },
                    "freshness_status": {
                      "type": "string",
                      "enum": [
                        "fresh",
                        "aging",
                        "stale",
                        "outage_fallback",
                        "manual_review",
                        "disputed",
                        "terms_blocked",
                        "unknown"
                      ]
                    },
                    "confidence": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    },
                    "schema_version": {
                      "type": "string"
                    },
                    "derived_from": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                },
                "conflict": {
                  "oneOf": [
                    {
                      "type": "object",
                      "required": [
                        "conflict_id",
                        "precedence_order",
                        "winner_source_class",
                        "compared_source_classes",
                        "not_silently_overwritten",
                        "operator_review_required",
                        "admin_visible",
                        "admin_review_queue",
                        "conflict_log_status"
                      ],
                      "properties": {
                        "conflict_id": {
                          "type": "string"
                        },
                        "precedence_order": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "official_source",
                              "verified_partner_feed",
                              "homejourney_admin_correction",
                              "trusted_partner_feed",
                              "scraper_cache_fallback",
                              "user_submitted_data"
                            ]
                          }
                        },
                        "winner_source_class": {
                          "type": "string",
                          "enum": [
                            "official_source",
                            "verified_partner_feed",
                            "homejourney_admin_correction",
                            "trusted_partner_feed",
                            "scraper_cache_fallback",
                            "user_submitted_data"
                          ]
                        },
                        "compared_source_classes": {
                          "type": "array",
                          "items": {
                            "type": "string",
                            "enum": [
                              "official_source",
                              "verified_partner_feed",
                              "homejourney_admin_correction",
                              "trusted_partner_feed",
                              "scraper_cache_fallback",
                              "user_submitted_data"
                            ]
                          }
                        },
                        "not_silently_overwritten": {
                          "type": "boolean",
                          "enum": [
                            true
                          ]
                        },
                        "operator_review_required": {
                          "type": "boolean"
                        },
                        "admin_visible": {
                          "type": "boolean",
                          "enum": [
                            true
                          ]
                        },
                        "admin_review_queue": {
                          "type": "string",
                          "enum": [
                            "official_source_conflicts"
                          ]
                        },
                        "conflict_log_status": {
                          "type": "string",
                          "enum": [
                            "recorded_for_admin_review"
                          ]
                        }
                      }
                    },
                    {
                      "type": "null"
                    }
                  ]
                }
              }
            }
          },
          "access": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "granted_official_source_scopes",
              "actor_model",
              "live_upstream_access",
              "sandbox_fixture_mode",
              "upstream_credential_material_returned"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_official_source_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "actor_model": {
                "type": "string",
                "enum": [
                  "api_key_automation_client"
                ]
              },
              "live_upstream_access": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              },
              "sandbox_fixture_mode": {
                "type": "string",
                "enum": [
                  "read_only"
                ]
              },
              "upstream_credential_material_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "OfficialSourceAttributionExplanationResponse": {
        "type": "object",
        "required": [
          "explanations",
          "access",
          "livemode",
          "request_id"
        ],
        "properties": {
          "explanations": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "explanation_id",
                "source_id",
                "dataset_id",
                "record_id",
                "attribution",
                "completeness",
                "freshness",
                "provenance",
                "safety"
              ],
              "properties": {
                "explanation_id": {
                  "type": "string"
                },
                "source_id": {
                  "type": "string"
                },
                "dataset_id": {
                  "type": "string"
                },
                "record_id": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "attribution": {
                  "type": "object",
                  "required": [
                    "source_agency",
                    "source_name",
                    "source_url_or_id",
                    "retrieved_at",
                    "valid_from",
                    "valid_to",
                    "license_label",
                    "freshness_status",
                    "confidence",
                    "schema_version",
                    "derived_from"
                  ],
                  "properties": {
                    "source_agency": {
                      "type": "string"
                    },
                    "source_name": {
                      "type": "string"
                    },
                    "source_url_or_id": {
                      "type": "string"
                    },
                    "retrieved_at": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "valid_from": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "valid_to": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "license_label": {
                      "type": "string"
                    },
                    "freshness_status": {
                      "type": "string",
                      "enum": [
                        "fresh",
                        "aging",
                        "stale",
                        "outage_fallback",
                        "manual_review",
                        "disputed",
                        "terms_blocked",
                        "unknown"
                      ]
                    },
                    "confidence": {
                      "type": "number",
                      "minimum": 0,
                      "maximum": 1
                    },
                    "schema_version": {
                      "type": "string"
                    },
                    "derived_from": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                },
                "completeness": {
                  "type": "object",
                  "required": [
                    "required_fields",
                    "missing_fields",
                    "complete"
                  ],
                  "properties": {
                    "required_fields": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "missing_fields": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "complete": {
                      "type": "boolean",
                      "enum": [
                        true
                      ]
                    }
                  }
                },
                "freshness": {
                  "type": "object",
                  "required": [
                    "status",
                    "retrieved_at",
                    "valid_from",
                    "valid_to",
                    "degraded_reason"
                  ],
                  "properties": {
                    "status": {
                      "type": "string",
                      "enum": [
                        "fresh",
                        "aging",
                        "stale",
                        "outage_fallback",
                        "manual_review",
                        "disputed",
                        "terms_blocked",
                        "unknown"
                      ]
                    },
                    "retrieved_at": {
                      "type": "string",
                      "format": "date-time"
                    },
                    "valid_from": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "valid_to": {
                      "type": [
                        "string",
                        "null"
                      ],
                      "format": "date-time"
                    },
                    "degraded_reason": {
                      "type": [
                        "string",
                        "null"
                      ]
                    }
                  }
                },
                "provenance": {
                  "type": "object",
                  "required": [
                    "derived_from",
                    "source_url_or_id",
                    "license_label",
                    "public_display_allowed",
                    "partner_access_allowed"
                  ],
                  "properties": {
                    "derived_from": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "source_url_or_id": {
                      "type": "string"
                    },
                    "license_label": {
                      "type": "string"
                    },
                    "public_display_allowed": {
                      "type": "boolean"
                    },
                    "partner_access_allowed": {
                      "type": "boolean"
                    }
                  }
                },
                "safety": {
                  "type": "object",
                  "required": [
                    "production_upstream_api_called",
                    "live_dataset_mutated",
                    "raw_credential_material_returned",
                    "restricted_payload_returned"
                  ],
                  "properties": {
                    "production_upstream_api_called": {
                      "type": "boolean",
                      "enum": [
                        false
                      ]
                    },
                    "live_dataset_mutated": {
                      "type": "boolean",
                      "enum": [
                        false
                      ]
                    },
                    "raw_credential_material_returned": {
                      "type": "boolean",
                      "enum": [
                        false
                      ]
                    },
                    "restricted_payload_returned": {
                      "type": "boolean",
                      "enum": [
                        false
                      ]
                    }
                  }
                }
              }
            }
          },
          "access": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "granted_official_source_scopes",
              "actor_model",
              "live_upstream_access",
              "sandbox_fixture_mode",
              "upstream_credential_material_returned"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_official_source_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "actor_model": {
                "type": "string",
                "enum": [
                  "api_key_automation_client"
                ]
              },
              "live_upstream_access": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              },
              "sandbox_fixture_mode": {
                "type": "string",
                "enum": [
                  "read_only"
                ]
              },
              "upstream_credential_material_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "ImportExportReadinessResponse": {
        "type": "object",
        "required": [
          "contracts",
          "execution_gates",
          "execution_ledger",
          "summary",
          "authorization",
          "public_safety",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "contracts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImportExportReadinessContract"
            }
          },
          "execution_gates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImportExportExecutionGate"
            }
          },
          "execution_ledger": {
            "$ref": "#/components/schemas/ImportExportExecutionLedger"
          },
          "summary": {
            "$ref": "#/components/schemas/ImportExportReadinessSummary"
          },
          "authorization": {
            "$ref": "#/components/schemas/ImportExportReadinessAuthorization"
          },
          "public_safety": {
            "$ref": "#/components/schemas/ImportExportReadinessPublicSafety"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "ImportExportExecutionGate": {
        "type": "object",
        "required": [
          "gate_id",
          "action",
          "status",
          "allowed",
          "required_before_enablement",
          "evidence_path",
          "proof_command",
          "next_action"
        ],
        "properties": {
          "gate_id": {
            "type": "string",
            "enum": [
              "runtime_import_confirmation",
              "export_download",
              "rollback_execution",
              "offboarding_execution"
            ]
          },
          "action": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "blocked_until_operator_rehearsal"
            ]
          },
          "allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "required_before_enablement": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "tenant_scoped_runtime_path",
                "operator_rehearsal",
                "cross_org_negative_test",
                "audit_event_persistence",
                "rollback_owner_approval"
              ]
            }
          },
          "evidence_path": {
            "type": "string",
            "enum": [
              "apps/web/lib/platform/__tests__/import-export-readiness.test.ts"
            ]
          },
          "proof_command": {
            "type": "string"
          },
          "next_action": {
            "type": "string"
          }
        }
      },
      "ImportExportExecutionLedger": {
        "type": "object",
        "required": [
          "source",
          "item_source",
          "access_model",
          "organization_id",
          "client_id",
          "environment",
          "recent_run_limit",
          "recent_run_count",
          "recent_item_count",
          "status_breakdown",
          "latest_run",
          "runtime_actions_enabled",
          "raw_file_payload_visible",
          "private_source_evidence_visible",
          "external_provider_calls_enabled"
        ],
        "properties": {
          "source": {
            "type": "string",
            "enum": [
              "platform.import_export_runs"
            ]
          },
          "item_source": {
            "type": "string",
            "enum": [
              "platform.import_export_run_items"
            ]
          },
          "access_model": {
            "type": "string",
            "enum": [
              "service_role_redacted_summary"
            ]
          },
          "organization_id": {
            "type": "string",
            "format": "uuid"
          },
          "client_id": {
            "type": "string",
            "format": "uuid"
          },
          "environment": {
            "type": "string",
            "enum": [
              "sandbox",
              "live"
            ]
          },
          "recent_run_limit": {
            "type": "integer",
            "enum": [
              25
            ]
          },
          "recent_run_count": {
            "type": "integer",
            "minimum": 0
          },
          "recent_item_count": {
            "type": "integer",
            "minimum": 0
          },
          "status_breakdown": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImportExportExecutionLedgerStatus"
            }
          },
          "latest_run": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/ImportExportLatestLedgerRun"
              },
              {
                "type": "null"
              }
            ]
          },
          "runtime_actions_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_file_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "private_source_evidence_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "external_provider_calls_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "ImportExportExecutionLedgerStatus": {
        "type": "object",
        "required": [
          "execution_status",
          "runs",
          "runtime_execution_allowed"
        ],
        "properties": {
          "execution_status": {
            "type": "string",
            "enum": [
              "previewed",
              "review_required",
              "blocked",
              "approved",
              "executed",
              "cancelled",
              "failed"
            ]
          },
          "runs": {
            "type": "integer",
            "minimum": 0
          },
          "runtime_execution_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "ImportExportLatestLedgerRun": {
        "type": "object",
        "required": [
          "module_id",
          "operation",
          "execution_status",
          "item_count",
          "created_at",
          "updated_at",
          "retention_until",
          "runtime_execution_allowed",
          "operator_rehearsal_completed",
          "cross_org_negative_test_passed",
          "audit_event_persisted",
          "rollback_owner_approved"
        ],
        "properties": {
          "module_id": {
            "type": "string",
            "enum": [
              "agent",
              "agency",
              "business",
              "mortgage",
              "legal",
              "developer",
              "renovation"
            ]
          },
          "operation": {
            "type": "string",
            "enum": [
              "runtime_import_confirmation",
              "export_download",
              "rollback_execution",
              "offboarding_execution"
            ]
          },
          "execution_status": {
            "type": "string",
            "enum": [
              "previewed",
              "review_required",
              "blocked",
              "approved",
              "executed",
              "cancelled",
              "failed"
            ]
          },
          "item_count": {
            "type": "integer",
            "minimum": 0
          },
          "created_at": {
            "type": "string"
          },
          "updated_at": {
            "type": "string"
          },
          "retention_until": {
            "type": "string"
          },
          "runtime_execution_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "operator_rehearsal_completed": {
            "type": "boolean"
          },
          "cross_org_negative_test_passed": {
            "type": "boolean"
          },
          "audit_event_persisted": {
            "type": "boolean"
          },
          "rollback_owner_approved": {
            "type": "boolean"
          }
        }
      },
      "ImportExportReadinessContract": {
        "type": "object",
        "required": [
          "module_id",
          "label",
          "workspace_root",
          "import_record_type",
          "seed_fixture",
          "preview_mode",
          "mutation_policy",
          "validation_rules",
          "dedupe_keys",
          "rollback_state",
          "export_posture",
          "offboarding_posture",
          "audit_event",
          "proof_command",
          "evidence_path",
          "source_paths",
          "source_markers",
          "passed_steps",
          "launch_ready",
          "blocker",
          "next_action",
          "runtime_confirmation",
          "import_write_access",
          "export_download_access",
          "rollback_execution",
          "offboarding_execution"
        ],
        "properties": {
          "module_id": {
            "type": "string",
            "enum": [
              "agent",
              "agency",
              "business",
              "mortgage",
              "legal",
              "developer",
              "renovation"
            ]
          },
          "label": {
            "type": "string"
          },
          "workspace_root": {
            "type": "string"
          },
          "import_record_type": {
            "type": "string"
          },
          "seed_fixture": {
            "type": "string"
          },
          "preview_mode": {
            "type": "string",
            "enum": [
              "dry_run_preview_only"
            ]
          },
          "mutation_policy": {
            "type": "string",
            "enum": [
              "no_database_write_until_confirmed"
            ]
          },
          "validation_rules": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "dedupe_keys": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "rollback_state": {
            "type": "string",
            "enum": [
              "preview_only_no_mutation"
            ]
          },
          "export_posture": {
            "$ref": "#/components/schemas/ImportExportReadinessPosture"
          },
          "offboarding_posture": {
            "type": "string",
            "enum": [
              "suspend_imports_preserve_export_and_audit"
            ]
          },
          "audit_event": {
            "type": "string"
          },
          "proof_command": {
            "type": "string"
          },
          "evidence_path": {
            "type": "string"
          },
          "source_paths": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "source_markers": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "passed_steps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ImportExportReadinessProofStep"
            }
          },
          "launch_ready": {
            "type": "boolean"
          },
          "blocker": {
            "type": [
              "string",
              "null"
            ]
          },
          "next_action": {
            "type": "string"
          },
          "runtime_confirmation": {
            "type": "string",
            "enum": [
              "deferred_until_operator_rehearsal"
            ]
          },
          "import_write_access": {
            "type": "string",
            "enum": [
              "disabled"
            ]
          },
          "export_download_access": {
            "type": "string",
            "enum": [
              "disabled"
            ]
          },
          "rollback_execution": {
            "type": "string",
            "enum": [
              "deferred"
            ]
          },
          "offboarding_execution": {
            "type": "string",
            "enum": [
              "deferred"
            ]
          }
        }
      },
      "ImportExportReadinessProofStep": {
        "type": "string",
        "enum": [
          "preview_file",
          "validation_contract",
          "dedupe_contract",
          "rollback_posture",
          "export_posture",
          "offboarding_posture",
          "audit_event"
        ]
      },
      "ImportExportReadinessPosture": {
        "type": "object",
        "required": [
          "format",
          "scope",
          "redaction",
          "retention"
        ],
        "properties": {
          "format": {
            "type": "string",
            "enum": [
              "csv_and_json"
            ]
          },
          "scope": {
            "type": "string",
            "enum": [
              "tenant_scoped"
            ]
          },
          "redaction": {
            "type": "string",
            "enum": [
              "public_safe_and_private_safe"
            ]
          },
          "retention": {
            "type": "string",
            "enum": [
              "short_retention_until_approved_export"
            ]
          }
        }
      },
      "ImportExportReadinessSummary": {
        "type": "object",
        "required": [
          "total_verticals",
          "preview_files_declared",
          "validation_contracts",
          "dedupe_contracts",
          "rollback_postures",
          "export_postures",
          "offboarding_postures",
          "audit_events",
          "launch_ready_contracts",
          "source_contract",
          "phase",
          "runtime_import_confirmation",
          "export_execution_model",
          "rollback_execution_model",
          "execution_gate_contract",
          "execution_gates_declared",
          "execution_gates_blocked"
        ],
        "properties": {
          "total_verticals": {
            "type": "integer",
            "minimum": 0
          },
          "preview_files_declared": {
            "type": "integer",
            "minimum": 0
          },
          "validation_contracts": {
            "type": "integer",
            "minimum": 0
          },
          "dedupe_contracts": {
            "type": "integer",
            "minimum": 0
          },
          "rollback_postures": {
            "type": "integer",
            "minimum": 0
          },
          "export_postures": {
            "type": "integer",
            "minimum": 0
          },
          "offboarding_postures": {
            "type": "integer",
            "minimum": 0
          },
          "audit_events": {
            "type": "integer",
            "minimum": 0
          },
          "launch_ready_contracts": {
            "type": "integer",
            "minimum": 0
          },
          "source_contract": {
            "type": "string",
            "enum": [
              "vertical_import_preview_contract"
            ]
          },
          "phase": {
            "type": "string",
            "enum": [
              "phase_0_readiness_only"
            ]
          },
          "runtime_import_confirmation": {
            "type": "string",
            "enum": [
              "deferred_until_operator_rehearsal"
            ]
          },
          "export_execution_model": {
            "type": "string",
            "enum": [
              "deferred_until_tenant_scoped_runtime_paths"
            ]
          },
          "rollback_execution_model": {
            "type": "string",
            "enum": [
              "deferred_until_operator_rehearsal"
            ]
          },
          "execution_gate_contract": {
            "type": "string",
            "enum": [
              "runtime_actions_blocked_v1"
            ]
          },
          "execution_gates_declared": {
            "type": "integer",
            "minimum": 0
          },
          "execution_gates_blocked": {
            "type": "integer",
            "minimum": 0
          }
        }
      },
      "ImportExportReadinessAuthorization": {
        "type": "object",
        "required": [
          "organization_id",
          "client_id",
          "api_key_id",
          "required_scope",
          "granted_migration_scopes",
          "actor_model",
          "data_access",
          "mutation_access"
        ],
        "properties": {
          "organization_id": {
            "type": "string",
            "format": "uuid"
          },
          "client_id": {
            "type": "string",
            "format": "uuid"
          },
          "api_key_id": {
            "type": "string",
            "format": "uuid"
          },
          "required_scope": {
            "type": "string",
            "enum": [
              "platform.import_export_readiness.read"
            ]
          },
          "granted_migration_scopes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformScope"
            }
          },
          "actor_model": {
            "type": "string",
            "enum": [
              "api_key_automation_client"
            ]
          },
          "data_access": {
            "type": "string",
            "enum": [
              "import_export_readiness_contract_only"
            ]
          },
          "mutation_access": {
            "type": "string",
            "enum": [
              "runtime_import_export_writes_deferred"
            ]
          }
        }
      },
      "ImportExportReadinessPublicSafety": {
        "type": "object",
        "required": [
          "database_writes_allowed",
          "import_confirmation_allowed",
          "export_download_allowed",
          "rollback_execution_allowed",
          "offboarding_execution_allowed",
          "private_source_evidence_visible",
          "raw_file_payload_visible",
          "external_provider_calls"
        ],
        "properties": {
          "database_writes_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "import_confirmation_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "export_download_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "rollback_execution_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "offboarding_execution_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "private_source_evidence_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_file_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "external_provider_calls": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "InvoiceDryRunsResponse": {
        "type": "object",
        "required": [
          "invoice_dry_runs",
          "summary",
          "authorization",
          "public_safety",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "invoice_dry_runs": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceDryRunItem"
            }
          },
          "summary": {
            "$ref": "#/components/schemas/InvoiceDryRunAggregate"
          },
          "authorization": {
            "$ref": "#/components/schemas/InvoiceDryRunsAuthorization"
          },
          "public_safety": {
            "$ref": "#/components/schemas/InvoiceDryRunsPublicSafety"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "InvoiceDryRunItem": {
        "type": "object",
        "required": [
          "module_id",
          "label",
          "workspace_root",
          "invoice_id",
          "billing_account_org_id",
          "billing_account_client_id",
          "billing_owner",
          "invoice_contact",
          "billing_period",
          "currency",
          "commercial_package_id",
          "support_tier",
          "aws_cost_owner",
          "invoice_state",
          "payment_terms",
          "invoice_delivery_mode",
          "send_mode",
          "send_review_state",
          "line_items",
          "line_item_count",
          "rollup_count",
          "draft_invoice_generation_allowed",
          "invoice_external_send_allowed",
          "invoice_send_side_effects_allowed",
          "payment_collection_allowed",
          "quota_enforcement_allowed",
          "credential_suspension_allowed",
          "raw_usage_event_payload_visible",
          "raw_payment_payload_visible",
          "proof_command",
          "evidence_path",
          "launch_ready",
          "blocker",
          "next_action"
        ],
        "properties": {
          "module_id": {
            "type": "string",
            "enum": [
              "agent",
              "agency",
              "business",
              "mortgage",
              "legal",
              "developer",
              "renovation"
            ]
          },
          "label": {
            "type": "string"
          },
          "workspace_root": {
            "type": "string"
          },
          "invoice_id": {
            "type": "string"
          },
          "billing_account_org_id": {
            "type": "string"
          },
          "billing_account_client_id": {
            "type": "string"
          },
          "billing_owner": {
            "type": "string"
          },
          "invoice_contact": {
            "type": "string",
            "format": "email"
          },
          "billing_period": {
            "type": "string"
          },
          "currency": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3
          },
          "commercial_package_id": {
            "type": "string"
          },
          "support_tier": {
            "type": "string"
          },
          "aws_cost_owner": {
            "type": "string"
          },
          "invoice_state": {
            "type": "string",
            "enum": [
              "draft",
              "review_required",
              "approved",
              "issued",
              "paid",
              "partially_paid",
              "voided",
              "credited",
              "disputed",
              "uncollectible"
            ]
          },
          "payment_terms": {
            "type": "string"
          },
          "invoice_delivery_mode": {
            "type": "string",
            "enum": [
              "draft_only"
            ]
          },
          "send_mode": {
            "type": "string",
            "enum": [
              "dry_run_preview_only"
            ]
          },
          "send_review_state": {
            "type": "string",
            "enum": [
              "manual_review_required"
            ]
          },
          "line_items": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceDryRunLineItem"
            }
          },
          "line_item_count": {
            "type": "integer",
            "minimum": 0
          },
          "rollup_count": {
            "type": "integer",
            "minimum": 0
          },
          "draft_invoice_generation_allowed": {
            "type": "boolean"
          },
          "invoice_external_send_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "invoice_send_side_effects_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_collection_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "quota_enforcement_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credential_suspension_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_usage_event_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_payment_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "proof_command": {
            "type": "string"
          },
          "evidence_path": {
            "type": "string"
          },
          "launch_ready": {
            "type": "boolean"
          },
          "blocker": {
            "type": [
              "string",
              "null"
            ]
          },
          "next_action": {
            "type": "string"
          }
        }
      },
      "InvoiceDryRunLineItem": {
        "type": "object",
        "required": [
          "capability",
          "unit",
          "billable_units",
          "included_units",
          "adjusted_units"
        ],
        "properties": {
          "capability": {
            "type": "string"
          },
          "unit": {
            "type": "string",
            "enum": [
              "api_call",
              "tool_call",
              "cli_call",
              "webhook_delivery",
              "webhook_replay",
              "site_view",
              "lead_submission",
              "schedule_request",
              "crm_delivery",
              "storage_gb_month",
              "signed_url",
              "document_scan",
              "source_refresh",
              "source_snapshot",
              "sandbox_reset",
              "certification_review",
              "marketplace_install"
            ]
          },
          "billable_units": {
            "type": "integer",
            "minimum": 0
          },
          "included_units": {
            "type": "integer",
            "minimum": 0
          },
          "adjusted_units": {
            "type": "integer"
          }
        }
      },
      "InvoiceDryRunAggregate": {
        "type": "object",
        "required": [
          "total_verticals",
          "plan_state_visible",
          "billing_owner_visible",
          "invoice_contact_visible",
          "billing_owner_visibility_gates",
          "partner_billing_table_reads_deferred",
          "usage_events_present",
          "customer_visible_usage_summaries",
          "automatic_overage_enforcement_blocked",
          "billing_owner_gate_side_effects_blocked",
          "launch_ready_contracts",
          "source_contract",
          "invoice_dry_run_model",
          "invoice_dry_runs_present",
          "draft_invoice_generation_allowed",
          "invoice_send_side_effects_blocked",
          "payment_collection_blocked"
        ],
        "properties": {
          "total_verticals": {
            "type": "integer",
            "minimum": 0
          },
          "plan_state_visible": {
            "type": "integer",
            "minimum": 0
          },
          "billing_owner_visible": {
            "type": "integer",
            "minimum": 0
          },
          "invoice_contact_visible": {
            "type": "integer",
            "minimum": 0
          },
          "billing_owner_visibility_gates": {
            "type": "integer",
            "minimum": 0
          },
          "partner_billing_table_reads_deferred": {
            "type": "integer",
            "minimum": 0
          },
          "usage_events_present": {
            "type": "integer",
            "minimum": 0
          },
          "customer_visible_usage_summaries": {
            "type": "integer",
            "minimum": 0
          },
          "automatic_overage_enforcement_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "billing_owner_gate_side_effects_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "launch_ready_contracts": {
            "type": "integer",
            "minimum": 0
          },
          "source_contract": {
            "type": "string",
            "enum": [
              "vertical_billing_usage_contract"
            ]
          },
          "invoice_dry_run_model": {
            "type": "string",
            "enum": [
              "deterministic_invoice_draft_contract_no_billing_table_reads"
            ]
          },
          "invoice_dry_runs_present": {
            "type": "integer",
            "minimum": 0
          },
          "draft_invoice_generation_allowed": {
            "type": "integer",
            "minimum": 0
          },
          "invoice_send_side_effects_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "payment_collection_blocked": {
            "type": "integer",
            "minimum": 0
          }
        }
      },
      "InvoiceDryRunsAuthorization": {
        "type": "object",
        "required": [
          "organization_id",
          "client_id",
          "api_key_id",
          "required_scope",
          "granted_billing_scopes",
          "actor_model",
          "data_access",
          "table_access",
          "mutation_access"
        ],
        "properties": {
          "organization_id": {
            "type": "string",
            "format": "uuid"
          },
          "client_id": {
            "type": "string",
            "format": "uuid"
          },
          "api_key_id": {
            "type": "string",
            "format": "uuid"
          },
          "required_scope": {
            "type": "string",
            "enum": [
              "platform.billing_owner_visibility.read"
            ]
          },
          "granted_billing_scopes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformScope"
            }
          },
          "actor_model": {
            "type": "string",
            "enum": [
              "api_key_automation_client"
            ]
          },
          "data_access": {
            "type": "string",
            "enum": [
              "invoice_dry_run_contract_only"
            ]
          },
          "table_access": {
            "type": "string",
            "enum": [
              "no_usage_event_or_partner_billing_table_reads"
            ]
          },
          "mutation_access": {
            "type": "string",
            "enum": [
              "billing_writes_deferred"
            ]
          }
        }
      },
      "InvoiceDryRunsPublicSafety": {
        "type": "object",
        "required": [
          "usage_event_table_reads_allowed",
          "partner_billing_table_reads_allowed",
          "raw_usage_event_payload_visible",
          "raw_payment_payload_visible",
          "invoice_external_send_allowed",
          "invoice_send_side_effects_allowed",
          "payment_collection_allowed",
          "quota_enforcement_allowed",
          "credential_suspension_allowed",
          "external_finance_calls",
          "billing_write_mutations_enabled"
        ],
        "properties": {
          "usage_event_table_reads_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "partner_billing_table_reads_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_usage_event_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_payment_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "invoice_external_send_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "invoice_send_side_effects_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_collection_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "quota_enforcement_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credential_suspension_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "external_finance_calls": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "billing_write_mutations_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "InvoiceDeliveryReconciliationResponse": {
        "type": "object",
        "required": [
          "invoice_delivery_reconciliation",
          "summary",
          "authorization",
          "public_safety",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "invoice_delivery_reconciliation": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceDeliveryReconciliationItem"
            }
          },
          "summary": {
            "$ref": "#/components/schemas/InvoiceDeliveryReconciliationAggregate"
          },
          "authorization": {
            "$ref": "#/components/schemas/InvoiceDeliveryReconciliationAuthorization"
          },
          "public_safety": {
            "$ref": "#/components/schemas/InvoiceDeliveryReconciliationPublicSafety"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "InvoiceDeliveryReconciliationItem": {
        "type": "object",
        "required": [
          "module_id",
          "label",
          "workspace_root",
          "invoice_id",
          "billing_account_org_id",
          "billing_account_client_id",
          "billing_owner",
          "invoice_contact",
          "billing_period",
          "currency",
          "invoice_state",
          "invoice_delivery_mode",
          "delivery_channel",
          "delivery_destination",
          "reconciliation_decision",
          "reconciliation_state",
          "required_scope",
          "satisfied_prerequisites",
          "missing_prerequisites",
          "delivery_reconciliation_ready",
          "delivery_receipt_recorded",
          "recipient_acknowledgement_recorded",
          "invoice_external_send_allowed",
          "invoice_delivery_side_effects_allowed",
          "finance_provider_call_allowed",
          "payment_collection_allowed",
          "quota_enforcement_allowed",
          "credential_suspension_allowed",
          "billing_write_mutations_enabled",
          "proof_command",
          "evidence_path",
          "blocker",
          "next_action"
        ],
        "properties": {
          "module_id": {
            "type": "string",
            "enum": [
              "agent",
              "agency",
              "business",
              "mortgage",
              "legal",
              "developer",
              "renovation"
            ]
          },
          "label": {
            "type": "string"
          },
          "workspace_root": {
            "type": "string"
          },
          "invoice_id": {
            "type": "string"
          },
          "billing_account_org_id": {
            "type": "string"
          },
          "billing_account_client_id": {
            "type": "string"
          },
          "billing_owner": {
            "type": "string"
          },
          "invoice_contact": {
            "type": "string",
            "format": "email"
          },
          "billing_period": {
            "type": "string"
          },
          "currency": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3
          },
          "invoice_state": {
            "type": "string",
            "enum": [
              "draft",
              "review_required",
              "approved",
              "issued",
              "paid",
              "partially_paid",
              "voided",
              "credited",
              "disputed",
              "uncollectible"
            ]
          },
          "invoice_delivery_mode": {
            "type": "string",
            "enum": [
              "draft_only"
            ]
          },
          "delivery_channel": {
            "type": "string",
            "enum": [
              "operator_review_queue"
            ]
          },
          "delivery_destination": {
            "type": "string",
            "format": "email"
          },
          "reconciliation_decision": {
            "type": "string",
            "enum": [
              "blocked_until_delivery_receipt"
            ]
          },
          "reconciliation_state": {
            "type": "string",
            "enum": [
              "manual_reconciliation_required"
            ]
          },
          "required_scope": {
            "type": "string",
            "enum": [
              "platform.billing_owner_visibility.read"
            ]
          },
          "satisfied_prerequisites": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "invoice_dry_run",
                "invoice_contact",
                "delivery_channel_policy",
                "manual_finance_review",
                "delivery_receipt_store",
                "recipient_acknowledgement",
                "support_owner",
                "audit_event"
              ]
            }
          },
          "missing_prerequisites": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "invoice_dry_run",
                "invoice_contact",
                "delivery_channel_policy",
                "manual_finance_review",
                "delivery_receipt_store",
                "recipient_acknowledgement",
                "support_owner",
                "audit_event"
              ]
            }
          },
          "delivery_reconciliation_ready": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "delivery_receipt_recorded": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "recipient_acknowledgement_recorded": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "invoice_external_send_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "invoice_delivery_side_effects_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "finance_provider_call_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_collection_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "quota_enforcement_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credential_suspension_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "billing_write_mutations_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "proof_command": {
            "type": "string"
          },
          "evidence_path": {
            "type": "string"
          },
          "blocker": {
            "type": "string"
          },
          "next_action": {
            "type": "string"
          }
        }
      },
      "InvoiceDeliveryReconciliationAggregate": {
        "type": "object",
        "required": [
          "total_verticals",
          "plan_state_visible",
          "billing_owner_visible",
          "invoice_contact_visible",
          "billing_owner_visibility_gates",
          "partner_billing_table_reads_deferred",
          "usage_events_present",
          "customer_visible_usage_summaries",
          "automatic_overage_enforcement_blocked",
          "billing_owner_gate_side_effects_blocked",
          "launch_ready_contracts",
          "source_contract",
          "invoice_delivery_reconciliation_contract",
          "reconciliation_gates_declared",
          "delivery_reconciliation_ready",
          "delivery_receipts_recorded",
          "recipient_acknowledgements_recorded",
          "invoice_delivery_side_effects_blocked",
          "finance_provider_calls_blocked"
        ],
        "properties": {
          "total_verticals": {
            "type": "integer",
            "minimum": 0
          },
          "plan_state_visible": {
            "type": "integer",
            "minimum": 0
          },
          "billing_owner_visible": {
            "type": "integer",
            "minimum": 0
          },
          "invoice_contact_visible": {
            "type": "integer",
            "minimum": 0
          },
          "billing_owner_visibility_gates": {
            "type": "integer",
            "minimum": 0
          },
          "partner_billing_table_reads_deferred": {
            "type": "integer",
            "minimum": 0
          },
          "usage_events_present": {
            "type": "integer",
            "minimum": 0
          },
          "customer_visible_usage_summaries": {
            "type": "integer",
            "minimum": 0
          },
          "automatic_overage_enforcement_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "billing_owner_gate_side_effects_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "launch_ready_contracts": {
            "type": "integer",
            "minimum": 0
          },
          "source_contract": {
            "type": "string",
            "enum": [
              "vertical_billing_usage_contract"
            ]
          },
          "invoice_delivery_reconciliation_contract": {
            "type": "string",
            "enum": [
              "invoice_delivery_reconciliation_blocked_v1"
            ]
          },
          "reconciliation_gates_declared": {
            "type": "integer",
            "minimum": 0
          },
          "delivery_reconciliation_ready": {
            "type": "integer",
            "minimum": 0
          },
          "delivery_receipts_recorded": {
            "type": "integer",
            "minimum": 0
          },
          "recipient_acknowledgements_recorded": {
            "type": "integer",
            "minimum": 0
          },
          "invoice_delivery_side_effects_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "finance_provider_calls_blocked": {
            "type": "integer",
            "minimum": 0
          }
        }
      },
      "InvoiceDeliveryReconciliationAuthorization": {
        "type": "object",
        "required": [
          "organization_id",
          "client_id",
          "api_key_id",
          "required_scope",
          "granted_billing_scopes",
          "actor_model",
          "data_access",
          "table_access",
          "mutation_access"
        ],
        "properties": {
          "organization_id": {
            "type": "string",
            "format": "uuid"
          },
          "client_id": {
            "type": "string",
            "format": "uuid"
          },
          "api_key_id": {
            "type": "string",
            "format": "uuid"
          },
          "required_scope": {
            "type": "string",
            "enum": [
              "platform.billing_owner_visibility.read"
            ]
          },
          "granted_billing_scopes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformScope"
            }
          },
          "actor_model": {
            "type": "string",
            "enum": [
              "api_key_automation_client"
            ]
          },
          "data_access": {
            "type": "string",
            "enum": [
              "invoice_delivery_reconciliation_contract_only"
            ]
          },
          "table_access": {
            "type": "string",
            "enum": [
              "no_usage_event_or_partner_billing_table_reads"
            ]
          },
          "mutation_access": {
            "type": "string",
            "enum": [
              "billing_writes_deferred"
            ]
          }
        }
      },
      "InvoiceDeliveryReconciliationPublicSafety": {
        "type": "object",
        "required": [
          "usage_event_table_reads_allowed",
          "partner_billing_table_reads_allowed",
          "raw_usage_event_payload_visible",
          "raw_payment_payload_visible",
          "delivery_receipt_payload_visible",
          "recipient_acknowledgement_payload_visible",
          "invoice_external_send_allowed",
          "invoice_delivery_side_effects_allowed",
          "finance_provider_call_allowed",
          "payment_collection_allowed",
          "quota_enforcement_allowed",
          "credential_suspension_allowed",
          "external_finance_calls",
          "billing_write_mutations_enabled"
        ],
        "properties": {
          "usage_event_table_reads_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "partner_billing_table_reads_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_usage_event_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_payment_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "delivery_receipt_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "recipient_acknowledgement_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "invoice_external_send_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "invoice_delivery_side_effects_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "finance_provider_call_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_collection_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "quota_enforcement_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credential_suspension_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "external_finance_calls": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "billing_write_mutations_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "InvoicePaymentCollectionGatesResponse": {
        "type": "object",
        "required": [
          "invoice_payment_collection_gates",
          "summary",
          "authorization",
          "public_safety",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "invoice_payment_collection_gates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoicePaymentCollectionGate"
            }
          },
          "summary": {
            "$ref": "#/components/schemas/InvoicePaymentCollectionGatesAggregate"
          },
          "authorization": {
            "$ref": "#/components/schemas/InvoicePaymentCollectionGatesAuthorization"
          },
          "public_safety": {
            "$ref": "#/components/schemas/InvoicePaymentCollectionGatesPublicSafety"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "InvoicePaymentCollectionGate": {
        "type": "object",
        "required": [
          "module_id",
          "label",
          "workspace_root",
          "invoice_id",
          "billing_account_org_id",
          "billing_account_client_id",
          "billing_owner",
          "invoice_contact",
          "billing_period",
          "currency",
          "invoice_state",
          "payment_terms",
          "collection_mode",
          "payment_provider",
          "collection_decision",
          "collection_review_state",
          "required_scope",
          "satisfied_prerequisites",
          "missing_prerequisites",
          "invoice_delivery_reconciliation_ready",
          "recipient_acknowledgement_recorded",
          "payment_collection_ready",
          "payment_collection_allowed",
          "payment_provider_call_allowed",
          "payment_method_payload_visible",
          "refund_dispute_workflow_ready",
          "invoice_external_send_allowed",
          "invoice_delivery_side_effects_allowed",
          "finance_provider_call_allowed",
          "quota_enforcement_allowed",
          "credential_suspension_allowed",
          "billing_write_mutations_enabled",
          "proof_command",
          "evidence_path",
          "blocker",
          "next_action"
        ],
        "properties": {
          "module_id": {
            "type": "string",
            "enum": [
              "agent",
              "agency",
              "business",
              "mortgage",
              "legal",
              "developer",
              "renovation"
            ]
          },
          "label": {
            "type": "string"
          },
          "workspace_root": {
            "type": "string"
          },
          "invoice_id": {
            "type": "string"
          },
          "billing_account_org_id": {
            "type": "string"
          },
          "billing_account_client_id": {
            "type": "string"
          },
          "billing_owner": {
            "type": "string"
          },
          "invoice_contact": {
            "type": "string",
            "format": "email"
          },
          "billing_period": {
            "type": "string"
          },
          "currency": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3
          },
          "invoice_state": {
            "type": "string",
            "enum": [
              "draft",
              "review_required",
              "approved",
              "issued",
              "paid",
              "partially_paid",
              "voided",
              "credited",
              "disputed",
              "uncollectible"
            ]
          },
          "payment_terms": {
            "type": "string"
          },
          "collection_mode": {
            "type": "string",
            "enum": [
              "manual_review_blocked"
            ]
          },
          "payment_provider": {
            "type": "string",
            "enum": [
              "deferred"
            ]
          },
          "collection_decision": {
            "type": "string",
            "enum": [
              "blocked_until_finance_reconciliation_and_payment_contract"
            ]
          },
          "collection_review_state": {
            "type": "string",
            "enum": [
              "manual_collection_review_required"
            ]
          },
          "required_scope": {
            "type": "string",
            "enum": [
              "platform.billing_owner_visibility.read"
            ]
          },
          "satisfied_prerequisites": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "invoice_dry_run",
                "invoice_delivery_reconciliation",
                "recipient_acknowledgement",
                "manual_finance_review",
                "payment_provider_contract",
                "payment_method_policy",
                "refund_dispute_policy",
                "support_owner",
                "audit_event"
              ]
            }
          },
          "missing_prerequisites": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "invoice_dry_run",
                "invoice_delivery_reconciliation",
                "recipient_acknowledgement",
                "manual_finance_review",
                "payment_provider_contract",
                "payment_method_policy",
                "refund_dispute_policy",
                "support_owner",
                "audit_event"
              ]
            }
          },
          "invoice_delivery_reconciliation_ready": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "recipient_acknowledgement_recorded": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_collection_ready": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_collection_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_provider_call_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_method_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "refund_dispute_workflow_ready": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "invoice_external_send_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "invoice_delivery_side_effects_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "finance_provider_call_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "quota_enforcement_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credential_suspension_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "billing_write_mutations_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "proof_command": {
            "type": "string"
          },
          "evidence_path": {
            "type": "string"
          },
          "blocker": {
            "type": "string"
          },
          "next_action": {
            "type": "string"
          }
        }
      },
      "InvoicePaymentCollectionGatesAggregate": {
        "type": "object",
        "required": [
          "total_verticals",
          "plan_state_visible",
          "billing_owner_visible",
          "invoice_contact_visible",
          "billing_owner_visibility_gates",
          "partner_billing_table_reads_deferred",
          "usage_events_present",
          "customer_visible_usage_summaries",
          "automatic_overage_enforcement_blocked",
          "billing_owner_gate_side_effects_blocked",
          "launch_ready_contracts",
          "source_contract",
          "invoice_payment_collection_contract",
          "payment_collection_gates_declared",
          "payment_collection_ready",
          "payment_collection_blocked",
          "payment_provider_calls_blocked",
          "payment_method_payloads_visible",
          "refund_dispute_workflows_ready",
          "finance_provider_calls_blocked"
        ],
        "properties": {
          "total_verticals": {
            "type": "integer",
            "minimum": 0
          },
          "plan_state_visible": {
            "type": "integer",
            "minimum": 0
          },
          "billing_owner_visible": {
            "type": "integer",
            "minimum": 0
          },
          "invoice_contact_visible": {
            "type": "integer",
            "minimum": 0
          },
          "billing_owner_visibility_gates": {
            "type": "integer",
            "minimum": 0
          },
          "partner_billing_table_reads_deferred": {
            "type": "integer",
            "minimum": 0
          },
          "usage_events_present": {
            "type": "integer",
            "minimum": 0
          },
          "customer_visible_usage_summaries": {
            "type": "integer",
            "minimum": 0
          },
          "automatic_overage_enforcement_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "billing_owner_gate_side_effects_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "launch_ready_contracts": {
            "type": "integer",
            "minimum": 0
          },
          "source_contract": {
            "type": "string",
            "enum": [
              "vertical_billing_usage_contract"
            ]
          },
          "invoice_payment_collection_contract": {
            "type": "string",
            "enum": [
              "invoice_payment_collection_blocked_v1"
            ]
          },
          "payment_collection_gates_declared": {
            "type": "integer",
            "minimum": 0
          },
          "payment_collection_ready": {
            "type": "integer",
            "minimum": 0
          },
          "payment_collection_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "payment_provider_calls_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "payment_method_payloads_visible": {
            "type": "integer",
            "minimum": 0
          },
          "refund_dispute_workflows_ready": {
            "type": "integer",
            "minimum": 0
          },
          "finance_provider_calls_blocked": {
            "type": "integer",
            "minimum": 0
          }
        }
      },
      "InvoicePaymentCollectionGatesAuthorization": {
        "type": "object",
        "required": [
          "organization_id",
          "client_id",
          "api_key_id",
          "required_scope",
          "granted_billing_scopes",
          "actor_model",
          "data_access",
          "table_access",
          "mutation_access"
        ],
        "properties": {
          "organization_id": {
            "type": "string",
            "format": "uuid"
          },
          "client_id": {
            "type": "string",
            "format": "uuid"
          },
          "api_key_id": {
            "type": "string",
            "format": "uuid"
          },
          "required_scope": {
            "type": "string",
            "enum": [
              "platform.billing_owner_visibility.read"
            ]
          },
          "granted_billing_scopes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformScope"
            }
          },
          "actor_model": {
            "type": "string",
            "enum": [
              "api_key_automation_client"
            ]
          },
          "data_access": {
            "type": "string",
            "enum": [
              "invoice_payment_collection_gate_contract_only"
            ]
          },
          "table_access": {
            "type": "string",
            "enum": [
              "no_usage_event_or_partner_billing_table_reads"
            ]
          },
          "mutation_access": {
            "type": "string",
            "enum": [
              "billing_writes_deferred"
            ]
          }
        }
      },
      "InvoicePaymentCollectionGatesPublicSafety": {
        "type": "object",
        "required": [
          "usage_event_table_reads_allowed",
          "partner_billing_table_reads_allowed",
          "raw_usage_event_payload_visible",
          "raw_payment_payload_visible",
          "payment_method_payload_visible",
          "payment_provider_call_allowed",
          "payment_collection_allowed",
          "refund_dispute_mutations_enabled",
          "invoice_external_send_allowed",
          "invoice_delivery_side_effects_allowed",
          "finance_provider_call_allowed",
          "quota_enforcement_allowed",
          "credential_suspension_allowed",
          "external_finance_calls",
          "billing_write_mutations_enabled"
        ],
        "properties": {
          "usage_event_table_reads_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "partner_billing_table_reads_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_usage_event_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_payment_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_method_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_provider_call_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_collection_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "refund_dispute_mutations_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "invoice_external_send_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "invoice_delivery_side_effects_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "finance_provider_call_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "quota_enforcement_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credential_suspension_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "external_finance_calls": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "billing_write_mutations_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "InvoiceCreditNoteChargebackGatesResponse": {
        "type": "object",
        "required": [
          "invoice_credit_note_chargeback_gates",
          "summary",
          "authorization",
          "public_safety",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "invoice_credit_note_chargeback_gates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceCreditNoteChargebackGate"
            }
          },
          "summary": {
            "$ref": "#/components/schemas/InvoiceCreditNoteChargebackGatesAggregate"
          },
          "authorization": {
            "$ref": "#/components/schemas/InvoiceCreditNoteChargebackGatesAuthorization"
          },
          "public_safety": {
            "$ref": "#/components/schemas/InvoiceCreditNoteChargebackGatesPublicSafety"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "InvoiceCreditNoteChargebackGate": {
        "type": "object",
        "required": [
          "module_id",
          "label",
          "workspace_root",
          "invoice_id",
          "billing_account_org_id",
          "billing_account_client_id",
          "billing_owner",
          "invoice_contact",
          "billing_period",
          "currency",
          "invoice_state",
          "payment_terms",
          "credit_note_mode",
          "chargeback_evidence_mode",
          "credit_note_decision",
          "chargeback_evidence_decision",
          "required_scope",
          "satisfied_prerequisites",
          "missing_prerequisites",
          "credit_note_workflow_ready",
          "chargeback_evidence_ready",
          "adjustment_ledger_ready",
          "credit_note_mutation_allowed",
          "chargeback_evidence_mutation_allowed",
          "processor_credit_note_call_allowed",
          "chargeback_provider_call_allowed",
          "payment_method_payload_visible",
          "credit_note_payload_visible",
          "chargeback_evidence_payload_visible",
          "customer_notice_ready",
          "support_owner_review_ready",
          "invoice_external_send_allowed",
          "payment_collection_allowed",
          "finance_provider_call_allowed",
          "quota_enforcement_allowed",
          "credential_suspension_allowed",
          "billing_write_mutations_enabled",
          "proof_command",
          "evidence_path",
          "blocker",
          "next_action"
        ],
        "properties": {
          "module_id": {
            "type": "string",
            "enum": [
              "agent",
              "agency",
              "business",
              "mortgage",
              "legal",
              "developer",
              "renovation"
            ]
          },
          "label": {
            "type": "string"
          },
          "workspace_root": {
            "type": "string"
          },
          "invoice_id": {
            "type": "string"
          },
          "billing_account_org_id": {
            "type": "string"
          },
          "billing_account_client_id": {
            "type": "string"
          },
          "billing_owner": {
            "type": "string"
          },
          "invoice_contact": {
            "type": "string",
            "format": "email"
          },
          "billing_period": {
            "type": "string"
          },
          "currency": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3
          },
          "invoice_state": {
            "type": "string",
            "enum": [
              "draft",
              "review_required",
              "approved",
              "issued",
              "paid",
              "partially_paid",
              "voided",
              "credited",
              "disputed",
              "uncollectible"
            ]
          },
          "payment_terms": {
            "type": "string"
          },
          "credit_note_mode": {
            "type": "string",
            "enum": [
              "manual_credit_note_review_blocked"
            ]
          },
          "chargeback_evidence_mode": {
            "type": "string",
            "enum": [
              "support_owner_evidence_review_blocked"
            ]
          },
          "credit_note_decision": {
            "type": "string",
            "enum": [
              "blocked_until_policy_ledger_and_notice_proof"
            ]
          },
          "chargeback_evidence_decision": {
            "type": "string",
            "enum": [
              "blocked_until_evidence_policy_support_and_audit_proof"
            ]
          },
          "required_scope": {
            "type": "string",
            "enum": [
              "platform.billing_owner_visibility.read"
            ]
          },
          "satisfied_prerequisites": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "invoice_dry_run",
                "payment_collection_gate_declared",
                "refund_dispute_gate_declared",
                "credit_note_policy",
                "chargeback_evidence_policy",
                "adjustment_ledger_contract",
                "processor_credit_note_contract",
                "customer_notice_policy",
                "support_owner",
                "audit_event"
              ]
            }
          },
          "missing_prerequisites": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "invoice_dry_run",
                "payment_collection_gate_declared",
                "refund_dispute_gate_declared",
                "credit_note_policy",
                "chargeback_evidence_policy",
                "adjustment_ledger_contract",
                "processor_credit_note_contract",
                "customer_notice_policy",
                "support_owner",
                "audit_event"
              ]
            }
          },
          "credit_note_workflow_ready": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "chargeback_evidence_ready": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "adjustment_ledger_ready": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credit_note_mutation_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "chargeback_evidence_mutation_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "processor_credit_note_call_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "chargeback_provider_call_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_method_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credit_note_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "chargeback_evidence_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "customer_notice_ready": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "support_owner_review_ready": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "invoice_external_send_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_collection_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "finance_provider_call_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "quota_enforcement_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credential_suspension_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "billing_write_mutations_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "proof_command": {
            "type": "string"
          },
          "evidence_path": {
            "type": "string"
          },
          "blocker": {
            "type": "string"
          },
          "next_action": {
            "type": "string"
          }
        }
      },
      "InvoiceCreditNoteChargebackGatesAggregate": {
        "type": "object",
        "required": [
          "total_verticals",
          "plan_state_visible",
          "billing_owner_visible",
          "invoice_contact_visible",
          "billing_owner_visibility_gates",
          "partner_billing_table_reads_deferred",
          "usage_events_present",
          "customer_visible_usage_summaries",
          "automatic_overage_enforcement_blocked",
          "billing_owner_gate_side_effects_blocked",
          "launch_ready_contracts",
          "source_contract",
          "invoice_credit_note_chargeback_contract",
          "credit_note_chargeback_gates_declared",
          "credit_note_workflows_ready",
          "chargeback_evidence_ready",
          "credit_note_mutations_blocked",
          "chargeback_evidence_mutations_blocked",
          "processor_credit_note_calls_blocked",
          "chargeback_provider_calls_blocked",
          "credit_note_payloads_visible",
          "chargeback_evidence_payloads_visible",
          "adjustment_ledgers_ready",
          "support_escalations_required",
          "finance_provider_calls_blocked"
        ],
        "properties": {
          "total_verticals": {
            "type": "integer",
            "minimum": 0
          },
          "plan_state_visible": {
            "type": "integer",
            "minimum": 0
          },
          "billing_owner_visible": {
            "type": "integer",
            "minimum": 0
          },
          "invoice_contact_visible": {
            "type": "integer",
            "minimum": 0
          },
          "billing_owner_visibility_gates": {
            "type": "integer",
            "minimum": 0
          },
          "partner_billing_table_reads_deferred": {
            "type": "integer",
            "minimum": 0
          },
          "usage_events_present": {
            "type": "integer",
            "minimum": 0
          },
          "customer_visible_usage_summaries": {
            "type": "integer",
            "minimum": 0
          },
          "automatic_overage_enforcement_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "billing_owner_gate_side_effects_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "launch_ready_contracts": {
            "type": "integer",
            "minimum": 0
          },
          "source_contract": {
            "type": "string",
            "enum": [
              "vertical_billing_usage_contract"
            ]
          },
          "invoice_credit_note_chargeback_contract": {
            "type": "string",
            "enum": [
              "invoice_credit_note_chargeback_blocked_v1"
            ]
          },
          "credit_note_chargeback_gates_declared": {
            "type": "integer",
            "minimum": 0
          },
          "credit_note_workflows_ready": {
            "type": "integer",
            "minimum": 0
          },
          "chargeback_evidence_ready": {
            "type": "integer",
            "minimum": 0
          },
          "credit_note_mutations_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "chargeback_evidence_mutations_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "processor_credit_note_calls_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "chargeback_provider_calls_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "credit_note_payloads_visible": {
            "type": "integer",
            "minimum": 0
          },
          "chargeback_evidence_payloads_visible": {
            "type": "integer",
            "minimum": 0
          },
          "adjustment_ledgers_ready": {
            "type": "integer",
            "minimum": 0
          },
          "support_escalations_required": {
            "type": "integer",
            "minimum": 0
          },
          "finance_provider_calls_blocked": {
            "type": "integer",
            "minimum": 0
          }
        }
      },
      "InvoiceCreditNoteChargebackGatesAuthorization": {
        "type": "object",
        "required": [
          "organization_id",
          "client_id",
          "api_key_id",
          "required_scope",
          "granted_billing_scopes",
          "actor_model",
          "data_access",
          "table_access",
          "mutation_access"
        ],
        "properties": {
          "organization_id": {
            "type": "string",
            "format": "uuid"
          },
          "client_id": {
            "type": "string",
            "format": "uuid"
          },
          "api_key_id": {
            "type": "string",
            "format": "uuid"
          },
          "required_scope": {
            "type": "string",
            "enum": [
              "platform.billing_owner_visibility.read"
            ]
          },
          "granted_billing_scopes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformScope"
            }
          },
          "actor_model": {
            "type": "string",
            "enum": [
              "api_key_automation_client"
            ]
          },
          "data_access": {
            "type": "string",
            "enum": [
              "invoice_credit_note_chargeback_gate_contract_only"
            ]
          },
          "table_access": {
            "type": "string",
            "enum": [
              "no_usage_event_or_partner_billing_table_reads"
            ]
          },
          "mutation_access": {
            "type": "string",
            "enum": [
              "billing_writes_deferred"
            ]
          }
        }
      },
      "InvoiceCreditNoteChargebackGatesPublicSafety": {
        "type": "object",
        "required": [
          "usage_event_table_reads_allowed",
          "partner_billing_table_reads_allowed",
          "raw_usage_event_payload_visible",
          "raw_payment_payload_visible",
          "payment_method_payload_visible",
          "credit_note_payload_visible",
          "chargeback_evidence_payload_visible",
          "processor_credit_note_call_allowed",
          "chargeback_provider_call_allowed",
          "credit_note_mutation_allowed",
          "chargeback_evidence_mutation_allowed",
          "credit_note_chargeback_mutations_enabled",
          "invoice_external_send_allowed",
          "payment_collection_allowed",
          "finance_provider_call_allowed",
          "quota_enforcement_allowed",
          "credential_suspension_allowed",
          "external_finance_calls",
          "billing_write_mutations_enabled"
        ],
        "properties": {
          "usage_event_table_reads_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "partner_billing_table_reads_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_usage_event_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_payment_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_method_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credit_note_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "chargeback_evidence_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "processor_credit_note_call_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "chargeback_provider_call_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credit_note_mutation_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "chargeback_evidence_mutation_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credit_note_chargeback_mutations_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "invoice_external_send_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_collection_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "finance_provider_call_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "quota_enforcement_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credential_suspension_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "external_finance_calls": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "billing_write_mutations_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "InvoiceRefundDisputeGatesResponse": {
        "type": "object",
        "required": [
          "invoice_refund_dispute_gates",
          "summary",
          "authorization",
          "public_safety",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "invoice_refund_dispute_gates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceRefundDisputeGate"
            }
          },
          "summary": {
            "$ref": "#/components/schemas/InvoiceRefundDisputeGatesAggregate"
          },
          "authorization": {
            "$ref": "#/components/schemas/InvoiceRefundDisputeGatesAuthorization"
          },
          "public_safety": {
            "$ref": "#/components/schemas/InvoiceRefundDisputeGatesPublicSafety"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "InvoiceRefundDisputeGate": {
        "type": "object",
        "required": [
          "module_id",
          "label",
          "workspace_root",
          "invoice_id",
          "billing_account_org_id",
          "billing_account_client_id",
          "billing_owner",
          "invoice_contact",
          "billing_period",
          "currency",
          "invoice_state",
          "payment_terms",
          "payment_collection_mode",
          "refund_mode",
          "dispute_mode",
          "refund_decision",
          "dispute_decision",
          "required_scope",
          "satisfied_prerequisites",
          "missing_prerequisites",
          "payment_collection_ready",
          "refund_workflow_ready",
          "dispute_workflow_ready",
          "refund_mutation_allowed",
          "dispute_mutation_allowed",
          "chargeback_mutation_allowed",
          "refund_provider_call_allowed",
          "dispute_provider_call_allowed",
          "chargeback_provider_call_allowed",
          "payment_method_payload_visible",
          "refund_receipt_payload_visible",
          "dispute_evidence_payload_visible",
          "customer_notice_ready",
          "support_owner_review_ready",
          "invoice_external_send_allowed",
          "payment_collection_allowed",
          "finance_provider_call_allowed",
          "quota_enforcement_allowed",
          "credential_suspension_allowed",
          "billing_write_mutations_enabled",
          "proof_command",
          "evidence_path",
          "blocker",
          "next_action"
        ],
        "properties": {
          "module_id": {
            "type": "string",
            "enum": [
              "agent",
              "agency",
              "business",
              "mortgage",
              "legal",
              "developer",
              "renovation"
            ]
          },
          "label": {
            "type": "string"
          },
          "workspace_root": {
            "type": "string"
          },
          "invoice_id": {
            "type": "string"
          },
          "billing_account_org_id": {
            "type": "string"
          },
          "billing_account_client_id": {
            "type": "string"
          },
          "billing_owner": {
            "type": "string"
          },
          "invoice_contact": {
            "type": "string",
            "format": "email"
          },
          "billing_period": {
            "type": "string"
          },
          "currency": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3
          },
          "invoice_state": {
            "type": "string",
            "enum": [
              "draft",
              "review_required",
              "approved",
              "issued",
              "paid",
              "partially_paid",
              "voided",
              "credited",
              "disputed",
              "uncollectible"
            ]
          },
          "payment_terms": {
            "type": "string"
          },
          "payment_collection_mode": {
            "type": "string",
            "enum": [
              "payment_collection_blocked"
            ]
          },
          "refund_mode": {
            "type": "string",
            "enum": [
              "manual_refund_review_blocked"
            ]
          },
          "dispute_mode": {
            "type": "string",
            "enum": [
              "support_owner_review_blocked"
            ]
          },
          "refund_decision": {
            "type": "string",
            "enum": [
              "blocked_until_payment_collection_and_refund_policy"
            ]
          },
          "dispute_decision": {
            "type": "string",
            "enum": [
              "blocked_until_dispute_policy_and_evidence_contract"
            ]
          },
          "required_scope": {
            "type": "string",
            "enum": [
              "platform.billing_owner_visibility.read"
            ]
          },
          "satisfied_prerequisites": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "invoice_dry_run",
                "payment_collection_gate_declared",
                "payment_collection_completion",
                "refund_policy",
                "dispute_policy",
                "processor_refund_contract",
                "chargeback_policy",
                "support_owner",
                "customer_notice_policy",
                "audit_event"
              ]
            }
          },
          "missing_prerequisites": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "invoice_dry_run",
                "payment_collection_gate_declared",
                "payment_collection_completion",
                "refund_policy",
                "dispute_policy",
                "processor_refund_contract",
                "chargeback_policy",
                "support_owner",
                "customer_notice_policy",
                "audit_event"
              ]
            }
          },
          "payment_collection_ready": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "refund_workflow_ready": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "dispute_workflow_ready": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "refund_mutation_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "dispute_mutation_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "chargeback_mutation_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "refund_provider_call_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "dispute_provider_call_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "chargeback_provider_call_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_method_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "refund_receipt_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "dispute_evidence_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "customer_notice_ready": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "support_owner_review_ready": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "invoice_external_send_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_collection_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "finance_provider_call_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "quota_enforcement_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credential_suspension_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "billing_write_mutations_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "proof_command": {
            "type": "string"
          },
          "evidence_path": {
            "type": "string"
          },
          "blocker": {
            "type": "string"
          },
          "next_action": {
            "type": "string"
          }
        }
      },
      "InvoiceRefundDisputeGatesAggregate": {
        "type": "object",
        "required": [
          "total_verticals",
          "plan_state_visible",
          "billing_owner_visible",
          "invoice_contact_visible",
          "billing_owner_visibility_gates",
          "partner_billing_table_reads_deferred",
          "usage_events_present",
          "customer_visible_usage_summaries",
          "automatic_overage_enforcement_blocked",
          "billing_owner_gate_side_effects_blocked",
          "launch_ready_contracts",
          "source_contract",
          "invoice_refund_dispute_contract",
          "refund_dispute_gates_declared",
          "refund_workflows_ready",
          "dispute_workflows_ready",
          "refund_dispute_mutations_blocked",
          "refund_provider_calls_blocked",
          "dispute_provider_calls_blocked",
          "chargeback_provider_calls_blocked",
          "payment_method_payloads_visible",
          "refund_receipt_payloads_visible",
          "dispute_evidence_payloads_visible",
          "support_escalations_required",
          "finance_provider_calls_blocked"
        ],
        "properties": {
          "total_verticals": {
            "type": "integer",
            "minimum": 0
          },
          "plan_state_visible": {
            "type": "integer",
            "minimum": 0
          },
          "billing_owner_visible": {
            "type": "integer",
            "minimum": 0
          },
          "invoice_contact_visible": {
            "type": "integer",
            "minimum": 0
          },
          "billing_owner_visibility_gates": {
            "type": "integer",
            "minimum": 0
          },
          "partner_billing_table_reads_deferred": {
            "type": "integer",
            "minimum": 0
          },
          "usage_events_present": {
            "type": "integer",
            "minimum": 0
          },
          "customer_visible_usage_summaries": {
            "type": "integer",
            "minimum": 0
          },
          "automatic_overage_enforcement_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "billing_owner_gate_side_effects_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "launch_ready_contracts": {
            "type": "integer",
            "minimum": 0
          },
          "source_contract": {
            "type": "string",
            "enum": [
              "vertical_billing_usage_contract"
            ]
          },
          "invoice_refund_dispute_contract": {
            "type": "string",
            "enum": [
              "invoice_refund_dispute_blocked_v1"
            ]
          },
          "refund_dispute_gates_declared": {
            "type": "integer",
            "minimum": 0
          },
          "refund_workflows_ready": {
            "type": "integer",
            "minimum": 0
          },
          "dispute_workflows_ready": {
            "type": "integer",
            "minimum": 0
          },
          "refund_dispute_mutations_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "refund_provider_calls_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "dispute_provider_calls_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "chargeback_provider_calls_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "payment_method_payloads_visible": {
            "type": "integer",
            "minimum": 0
          },
          "refund_receipt_payloads_visible": {
            "type": "integer",
            "minimum": 0
          },
          "dispute_evidence_payloads_visible": {
            "type": "integer",
            "minimum": 0
          },
          "support_escalations_required": {
            "type": "integer",
            "minimum": 0
          },
          "finance_provider_calls_blocked": {
            "type": "integer",
            "minimum": 0
          }
        }
      },
      "InvoiceRefundDisputeGatesAuthorization": {
        "type": "object",
        "required": [
          "organization_id",
          "client_id",
          "api_key_id",
          "required_scope",
          "granted_billing_scopes",
          "actor_model",
          "data_access",
          "table_access",
          "mutation_access"
        ],
        "properties": {
          "organization_id": {
            "type": "string",
            "format": "uuid"
          },
          "client_id": {
            "type": "string",
            "format": "uuid"
          },
          "api_key_id": {
            "type": "string",
            "format": "uuid"
          },
          "required_scope": {
            "type": "string",
            "enum": [
              "platform.billing_owner_visibility.read"
            ]
          },
          "granted_billing_scopes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformScope"
            }
          },
          "actor_model": {
            "type": "string",
            "enum": [
              "api_key_automation_client"
            ]
          },
          "data_access": {
            "type": "string",
            "enum": [
              "invoice_refund_dispute_gate_contract_only"
            ]
          },
          "table_access": {
            "type": "string",
            "enum": [
              "no_usage_event_or_partner_billing_table_reads"
            ]
          },
          "mutation_access": {
            "type": "string",
            "enum": [
              "billing_writes_deferred"
            ]
          }
        }
      },
      "InvoiceRefundDisputeGatesPublicSafety": {
        "type": "object",
        "required": [
          "usage_event_table_reads_allowed",
          "partner_billing_table_reads_allowed",
          "raw_usage_event_payload_visible",
          "raw_payment_payload_visible",
          "payment_method_payload_visible",
          "refund_receipt_payload_visible",
          "dispute_evidence_payload_visible",
          "refund_provider_call_allowed",
          "dispute_provider_call_allowed",
          "chargeback_provider_call_allowed",
          "refund_mutation_allowed",
          "dispute_mutation_allowed",
          "chargeback_mutation_allowed",
          "refund_dispute_mutations_enabled",
          "invoice_external_send_allowed",
          "payment_collection_allowed",
          "finance_provider_call_allowed",
          "quota_enforcement_allowed",
          "credential_suspension_allowed",
          "external_finance_calls",
          "billing_write_mutations_enabled"
        ],
        "properties": {
          "usage_event_table_reads_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "partner_billing_table_reads_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_usage_event_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_payment_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_method_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "refund_receipt_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "dispute_evidence_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "refund_provider_call_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "dispute_provider_call_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "chargeback_provider_call_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "refund_mutation_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "dispute_mutation_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "chargeback_mutation_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "refund_dispute_mutations_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "invoice_external_send_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_collection_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "finance_provider_call_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "quota_enforcement_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credential_suspension_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "external_finance_calls": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "billing_write_mutations_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "InvoiceSendGatesResponse": {
        "type": "object",
        "required": [
          "invoice_send_gates",
          "summary",
          "authorization",
          "public_safety",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "invoice_send_gates": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/InvoiceSendGateItem"
            }
          },
          "summary": {
            "$ref": "#/components/schemas/InvoiceSendGateAggregate"
          },
          "authorization": {
            "$ref": "#/components/schemas/InvoiceSendGatesAuthorization"
          },
          "public_safety": {
            "$ref": "#/components/schemas/InvoiceSendGatesPublicSafety"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "InvoiceSendGateItem": {
        "type": "object",
        "required": [
          "module_id",
          "label",
          "workspace_root",
          "invoice_id",
          "billing_account_org_id",
          "billing_account_client_id",
          "billing_owner",
          "invoice_contact",
          "billing_period",
          "currency",
          "invoice_state",
          "payment_terms",
          "invoice_delivery_mode",
          "send_decision",
          "send_review_state",
          "required_scope",
          "satisfied_prerequisites",
          "missing_prerequisites",
          "invoice_external_send_allowed",
          "invoice_send_side_effects_allowed",
          "finance_provider_call_allowed",
          "payment_collection_allowed",
          "quota_enforcement_allowed",
          "credential_suspension_allowed",
          "billing_write_mutations_enabled",
          "proof_command",
          "evidence_path",
          "blocker",
          "next_action"
        ],
        "properties": {
          "module_id": {
            "type": "string",
            "enum": [
              "agent",
              "agency",
              "business",
              "mortgage",
              "legal",
              "developer",
              "renovation"
            ]
          },
          "label": {
            "type": "string"
          },
          "workspace_root": {
            "type": "string"
          },
          "invoice_id": {
            "type": "string"
          },
          "billing_account_org_id": {
            "type": "string"
          },
          "billing_account_client_id": {
            "type": "string"
          },
          "billing_owner": {
            "type": "string"
          },
          "invoice_contact": {
            "type": "string",
            "format": "email"
          },
          "billing_period": {
            "type": "string"
          },
          "currency": {
            "type": "string",
            "minLength": 3,
            "maxLength": 3
          },
          "invoice_state": {
            "type": "string",
            "enum": [
              "draft",
              "review_required",
              "approved",
              "issued",
              "paid",
              "partially_paid",
              "voided",
              "credited",
              "disputed",
              "uncollectible"
            ]
          },
          "payment_terms": {
            "type": "string"
          },
          "invoice_delivery_mode": {
            "type": "string",
            "enum": [
              "draft_only"
            ]
          },
          "send_decision": {
            "type": "string",
            "enum": [
              "blocked_until_finance_review"
            ]
          },
          "send_review_state": {
            "type": "string",
            "enum": [
              "manual_review_required"
            ]
          },
          "required_scope": {
            "type": "string",
            "enum": [
              "platform.billing_owner_visibility.read"
            ]
          },
          "satisfied_prerequisites": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "billing_owner",
                "invoice_contact",
                "approved_usage_rollup",
                "draft_invoice_preview",
                "manual_finance_review",
                "external_finance_provider_contract",
                "delivery_reconciliation",
                "payment_collection_gate",
                "support_owner",
                "audit_event"
              ]
            }
          },
          "missing_prerequisites": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "billing_owner",
                "invoice_contact",
                "approved_usage_rollup",
                "draft_invoice_preview",
                "manual_finance_review",
                "external_finance_provider_contract",
                "delivery_reconciliation",
                "payment_collection_gate",
                "support_owner",
                "audit_event"
              ]
            }
          },
          "invoice_external_send_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "invoice_send_side_effects_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "finance_provider_call_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_collection_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "quota_enforcement_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credential_suspension_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "billing_write_mutations_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "proof_command": {
            "type": "string"
          },
          "evidence_path": {
            "type": "string"
          },
          "blocker": {
            "type": "string"
          },
          "next_action": {
            "type": "string"
          }
        }
      },
      "InvoiceSendGateAggregate": {
        "type": "object",
        "required": [
          "total_verticals",
          "plan_state_visible",
          "billing_owner_visible",
          "invoice_contact_visible",
          "billing_owner_visibility_gates",
          "partner_billing_table_reads_deferred",
          "usage_events_present",
          "customer_visible_usage_summaries",
          "automatic_overage_enforcement_blocked",
          "billing_owner_gate_side_effects_blocked",
          "launch_ready_contracts",
          "source_contract",
          "invoice_send_gate_contract",
          "invoice_send_gates_declared",
          "invoice_send_gates_blocked",
          "invoice_dry_runs_ready",
          "finance_provider_calls_blocked",
          "payment_collection_blocked",
          "quota_enforcement_blocked",
          "credential_suspension_blocked"
        ],
        "properties": {
          "total_verticals": {
            "type": "integer",
            "minimum": 0
          },
          "plan_state_visible": {
            "type": "integer",
            "minimum": 0
          },
          "billing_owner_visible": {
            "type": "integer",
            "minimum": 0
          },
          "invoice_contact_visible": {
            "type": "integer",
            "minimum": 0
          },
          "billing_owner_visibility_gates": {
            "type": "integer",
            "minimum": 0
          },
          "partner_billing_table_reads_deferred": {
            "type": "integer",
            "minimum": 0
          },
          "usage_events_present": {
            "type": "integer",
            "minimum": 0
          },
          "customer_visible_usage_summaries": {
            "type": "integer",
            "minimum": 0
          },
          "automatic_overage_enforcement_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "billing_owner_gate_side_effects_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "launch_ready_contracts": {
            "type": "integer",
            "minimum": 0
          },
          "source_contract": {
            "type": "string",
            "enum": [
              "vertical_billing_usage_contract"
            ]
          },
          "invoice_send_gate_contract": {
            "type": "string",
            "enum": [
              "external_invoice_send_blocked_v1"
            ]
          },
          "invoice_send_gates_declared": {
            "type": "integer",
            "minimum": 0
          },
          "invoice_send_gates_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "invoice_dry_runs_ready": {
            "type": "integer",
            "minimum": 0
          },
          "finance_provider_calls_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "payment_collection_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "quota_enforcement_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "credential_suspension_blocked": {
            "type": "integer",
            "minimum": 0
          }
        }
      },
      "InvoiceSendGatesAuthorization": {
        "type": "object",
        "required": [
          "organization_id",
          "client_id",
          "api_key_id",
          "required_scope",
          "granted_billing_scopes",
          "actor_model",
          "data_access",
          "table_access",
          "mutation_access"
        ],
        "properties": {
          "organization_id": {
            "type": "string",
            "format": "uuid"
          },
          "client_id": {
            "type": "string",
            "format": "uuid"
          },
          "api_key_id": {
            "type": "string",
            "format": "uuid"
          },
          "required_scope": {
            "type": "string",
            "enum": [
              "platform.billing_owner_visibility.read"
            ]
          },
          "granted_billing_scopes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformScope"
            }
          },
          "actor_model": {
            "type": "string",
            "enum": [
              "api_key_automation_client"
            ]
          },
          "data_access": {
            "type": "string",
            "enum": [
              "invoice_send_gate_contract_only"
            ]
          },
          "table_access": {
            "type": "string",
            "enum": [
              "no_usage_event_or_partner_billing_table_reads"
            ]
          },
          "mutation_access": {
            "type": "string",
            "enum": [
              "billing_writes_deferred"
            ]
          }
        }
      },
      "InvoiceSendGatesPublicSafety": {
        "type": "object",
        "required": [
          "usage_event_table_reads_allowed",
          "partner_billing_table_reads_allowed",
          "raw_usage_event_payload_visible",
          "raw_payment_payload_visible",
          "invoice_external_send_allowed",
          "invoice_send_side_effects_allowed",
          "finance_provider_call_allowed",
          "payment_collection_allowed",
          "quota_enforcement_allowed",
          "credential_suspension_allowed",
          "external_finance_calls",
          "billing_write_mutations_enabled"
        ],
        "properties": {
          "usage_event_table_reads_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "partner_billing_table_reads_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_usage_event_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_payment_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "invoice_external_send_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "invoice_send_side_effects_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "finance_provider_call_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_collection_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "quota_enforcement_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credential_suspension_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "external_finance_calls": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "billing_write_mutations_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "PlatformOnboardingSandboxCredentialRequest": {
        "type": "object",
        "required": [
          "key_name"
        ],
        "additionalProperties": false,
        "properties": {
          "key_name": {
            "type": "string",
            "minLength": 3,
            "maxLength": 80,
            "description": "Human-readable sandbox key name shown in credential inventory."
          },
          "requested_scopes": {
            "type": "array",
            "minItems": 1,
            "maxItems": 20,
            "items": {
              "$ref": "#/components/schemas/PlatformScope"
            },
            "description": "Optional approved self-service scope subset. The API rejects scope expansion and recursive credential-management scopes."
          },
          "expires_in_days": {
            "type": "integer",
            "minimum": 1,
            "maximum": 90,
            "description": "Optional sandbox key lifetime in days. Defaults to 30."
          }
        }
      },
      "PlatformOnboardingSandboxCredentialResponse": {
        "type": "object",
        "required": [
          "credential",
          "readiness",
          "idempotency_key_hash",
          "livemode",
          "request_id"
        ],
        "properties": {
          "credential": {
            "type": "object",
            "required": [
              "id",
              "key_name",
              "key_prefix",
              "environment",
              "status",
              "scopes",
              "expires_at",
              "created_at",
              "last_used_at",
              "raw_api_key",
              "one_time_reveal"
            ],
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "key_name": {
                "type": "string"
              },
              "key_prefix": {
                "type": "string",
                "pattern": "^hjp_test_"
              },
              "environment": {
                "type": "string",
                "enum": [
                  "sandbox"
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "active"
                ]
              },
              "scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "expires_at": {
                "type": "string",
                "format": "date-time"
              },
              "created_at": {
                "type": "string",
                "format": "date-time"
              },
              "last_used_at": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "raw_api_key": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^hjp_test_",
                "description": "Returned only on initial successful creation. Replay-safe idempotency responses set this to null because Homejourney never stores raw API keys."
              },
              "one_time_reveal": {
                "type": "object",
                "required": [
                  "available",
                  "storage",
                  "replay_behavior"
                ],
                "properties": {
                  "available": {
                    "type": "boolean"
                  },
                  "storage": {
                    "type": "string",
                    "enum": [
                      "not_stored"
                    ]
                  },
                  "replay_behavior": {
                    "type": "string",
                    "enum": [
                      "raw_key_omitted"
                    ]
                  }
                }
              }
            }
          },
          "readiness": {
            "$ref": "#/components/schemas/PlatformOnboardingReadinessResponse"
          },
          "idempotency_key_hash": {
            "type": "string"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformOnboardingEvidenceSubmissionRequest": {
        "oneOf": [
          {
            "type": "object",
            "required": [
              "evidence_key",
              "support_owner"
            ],
            "additionalProperties": false,
            "properties": {
              "evidence_key": {
                "type": "string",
                "enum": [
                  "support_owner_recorded"
                ]
              },
              "support_owner": {
                "type": "object",
                "required": [
                  "name",
                  "email",
                  "role"
                ],
                "additionalProperties": false,
                "properties": {
                  "name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "email": {
                    "type": "string",
                    "format": "email",
                    "maxLength": 254
                  },
                  "role": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "phone": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 40
                  },
                  "escalation_email": {
                    "type": "string",
                    "format": "email",
                    "maxLength": 254
                  },
                  "technical_owner_email": {
                    "type": "string",
                    "format": "email",
                    "maxLength": 254
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "evidence_key",
              "business_authority"
            ],
            "additionalProperties": false,
            "properties": {
              "evidence_key": {
                "type": "string",
                "enum": [
                  "business_authority_verified"
                ]
              },
              "business_authority": {
                "type": "object",
                "required": [
                  "signer_display_name",
                  "signer_role",
                  "signer_authority_source",
                  "evidence_reference"
                ],
                "additionalProperties": false,
                "properties": {
                  "signer_display_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "signer_role": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "signer_authority_source": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "evidence_reference": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 200
                  },
                  "business_registration_number": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 40
                  },
                  "verified_at": {
                    "type": "string",
                    "format": "date-time"
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "evidence_key",
              "business_eligibility"
            ],
            "additionalProperties": false,
            "properties": {
              "evidence_key": {
                "type": "string",
                "enum": [
                  "business_eligibility_recorded"
                ]
              },
              "business_eligibility": {
                "type": "object",
                "required": [
                  "legal_name",
                  "business_registration_number",
                  "registered_address",
                  "service_category",
                  "payout_country"
                ],
                "additionalProperties": false,
                "properties": {
                  "legal_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "business_registration_number": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 40
                  },
                  "registered_address": {
                    "type": "string",
                    "minLength": 5,
                    "maxLength": 400
                  },
                  "service_category": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "payout_country": {
                    "type": "string",
                    "minLength": 2,
                    "maxLength": 2
                  },
                  "business_registration_type": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  }
                }
              }
            }
          },
          {
            "type": "object",
            "required": [
              "evidence_key",
              "contract_signature"
            ],
            "additionalProperties": false,
            "properties": {
              "evidence_key": {
                "type": "string",
                "enum": [
                  "contract_signature_recorded"
                ]
              },
              "contract_signature": {
                "type": "object",
                "required": [
                  "signing_rail",
                  "signature_status",
                  "evidence_reference",
                  "signer_display_name",
                  "signer_role",
                  "signer_authority_source",
                  "signed_at"
                ],
                "additionalProperties": false,
                "properties": {
                  "signing_rail": {
                    "type": "string",
                    "enum": [
                      "sign_with_singpass",
                      "digital_signing_partner",
                      "manual_review"
                    ]
                  },
                  "signature_status": {
                    "type": "string",
                    "enum": [
                      "signed",
                      "countersigned"
                    ]
                  },
                  "evidence_reference": {
                    "type": "string",
                    "minLength": 3,
                    "maxLength": 200
                  },
                  "signer_display_name": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "signer_role": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "signer_authority_source": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 200
                  },
                  "signed_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "countersigned_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "document_hash": {
                    "type": "string",
                    "pattern": "^[a-fA-F0-9]{64}$"
                  }
                }
              }
            }
          }
        ],
        "discriminator": {
          "propertyName": "evidence_key"
        }
      },
      "PlatformOnboardingEvidenceSubmissionResponse": {
        "type": "object",
        "required": [
          "evidence",
          "readiness",
          "idempotency_key_hash",
          "livemode",
          "request_id"
        ],
        "properties": {
          "evidence": {
            "type": "object",
            "required": [
              "evidence_id",
              "evidence_key",
              "status",
              "external_reference",
              "recorded_at",
              "source",
              "manual_review_required_for_live_access"
            ],
            "properties": {
              "evidence_id": {
                "type": "string",
                "format": "uuid"
              },
              "evidence_key": {
                "type": "string",
                "enum": [
                  "support_owner_recorded",
                  "business_authority_verified",
                  "business_eligibility_recorded",
                  "contract_signature_recorded"
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "complete"
                ]
              },
              "external_reference": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "recorded_at": {
                "type": "string",
                "format": "date-time"
              },
              "source": {
                "type": "string",
                "enum": [
                  "platform.partner_submitted_evidence"
                ]
              },
              "manual_review_required_for_live_access": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "readiness": {
            "$ref": "#/components/schemas/PlatformOnboardingReadinessResponse"
          },
          "idempotency_key_hash": {
            "type": "string"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformOnboardingLiveAccessRequest": {
        "type": "object",
        "required": [
          "requested_live_access"
        ],
        "additionalProperties": false,
        "properties": {
          "requested_live_access": {
            "type": "boolean",
            "enum": [
              true
            ],
            "description": "Explicit confirmation that the caller requests manual live-access review."
          }
        }
      },
      "PlatformOnboardingLiveAccessResponse": {
        "type": "object",
        "required": [
          "live_access_request",
          "readiness",
          "idempotency_key_hash",
          "livemode",
          "request_id"
        ],
        "properties": {
          "live_access_request": {
            "type": "object",
            "required": [
              "application_id",
              "state",
              "live_access",
              "submitted_at",
              "manual_review_required",
              "live_credentials_created",
              "support"
            ],
            "properties": {
              "application_id": {
                "type": "string",
                "format": "uuid"
              },
              "state": {
                "type": "string",
                "enum": [
                  "live_review_pending"
                ]
              },
              "live_access": {
                "type": "string",
                "enum": [
                  "review_pending"
                ]
              },
              "submitted_at": {
                "type": "string",
                "format": "date-time"
              },
              "manual_review_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "live_credentials_created": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "support": {
                "type": "object",
                "required": [
                  "mode",
                  "contact"
                ],
                "properties": {
                  "mode": {
                    "type": "string",
                    "enum": [
                      "pilot_email"
                    ]
                  },
                  "contact": {
                    "type": "string",
                    "enum": [
                      "support@homejourney.sg"
                    ]
                  }
                }
              }
            }
          },
          "readiness": {
            "$ref": "#/components/schemas/PlatformOnboardingReadinessResponse"
          },
          "idempotency_key_hash": {
            "type": "string"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformOnboardingTermsAcceptanceRequest": {
        "type": "object",
        "required": [
          "accepted_terms",
          "terms_package_id",
          "terms_version",
          "consent"
        ],
        "additionalProperties": false,
        "properties": {
          "accepted_terms": {
            "type": "boolean",
            "enum": [
              true
            ],
            "description": "Explicit acknowledgement that the caller accepts the named terms package."
          },
          "terms_package_id": {
            "type": "string",
            "enum": [
              "platform_service_provider_terms"
            ]
          },
          "consent": {
            "type": "object",
            "required": [
              "data_sharing_acknowledged",
              "consent_version"
            ],
            "additionalProperties": false,
            "description": "PDPA consent acknowledgement for the data-sharing scope stated in the terms package.",
            "properties": {
              "data_sharing_acknowledged": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "consent_version": {
                "type": "string",
                "enum": [
                  "2026.06"
                ]
              }
            }
          },
          "terms_version": {
            "type": "string",
            "enum": [
              "2026.06"
            ]
          }
        }
      },
      "PlatformOnboardingTermsAcceptanceResponse": {
        "type": "object",
        "required": [
          "acceptance",
          "readiness",
          "idempotency_key_hash",
          "livemode",
          "request_id"
        ],
        "properties": {
          "acceptance": {
            "type": "object",
            "required": [
              "evidence_id",
              "evidence_key",
              "status",
              "terms_package_id",
              "terms_version",
              "accepted_at",
              "source",
              "consent"
            ],
            "properties": {
              "evidence_id": {
                "type": "string",
                "format": "uuid"
              },
              "evidence_key": {
                "type": "string",
                "enum": [
                  "current_terms_acceptance"
                ]
              },
              "status": {
                "type": "string",
                "enum": [
                  "complete"
                ]
              },
              "terms_package_id": {
                "type": "string",
                "enum": [
                  "platform_service_provider_terms"
                ]
              },
              "terms_version": {
                "type": "string",
                "enum": [
                  "2026.06"
                ]
              },
              "accepted_at": {
                "type": "string",
                "format": "date-time"
              },
              "source": {
                "type": "string",
                "enum": [
                  "platform.onboarding_terms_acceptance"
                ]
              },
              "consent": {
                "type": "object",
                "required": [
                  "data_sharing_acknowledged",
                  "consent_version"
                ],
                "properties": {
                  "data_sharing_acknowledged": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "consent_version": {
                    "type": "string",
                    "enum": [
                      "2026.06"
                    ]
                  }
                }
              }
            }
          },
          "readiness": {
            "$ref": "#/components/schemas/PlatformOnboardingReadinessResponse"
          },
          "idempotency_key_hash": {
            "type": "string"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformContractPackageCatalogResponse": {
        "type": "object",
        "required": [
          "packages",
          "default_package",
          "livemode",
          "request_id"
        ],
        "properties": {
          "packages": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "version",
                "display_name",
                "status",
                "target_actor",
                "allowed_environments",
                "sandbox_terms_rail",
                "allowed_signing_rails",
                "required_authority_sources",
                "allowed_commercial_package_ids",
                "default_commercial_package_id",
                "allowed_live_scopes",
                "requires_business_authority",
                "countersignature_required",
                "signing_session_available",
                "blocks_live_credentials_without_commercial_approval",
                "ai_agent_summary",
                "blocked_claims",
                "source_spec"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "version": {
                  "type": "string"
                },
                "display_name": {
                  "type": "string"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "active",
                    "draft",
                    "deprecated",
                    "retired",
                    "unregistered"
                  ]
                },
                "target_actor": {
                  "type": "string",
                  "enum": [
                    "service_provider",
                    "bank_partner",
                    "conveyancing_firm",
                    "agent_agency",
                    "advertiser",
                    "landlord_owner"
                  ]
                },
                "allowed_environments": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "sandbox",
                      "live"
                    ]
                  }
                },
                "sandbox_terms_rail": {
                  "type": "string",
                  "enum": [
                    "clickwrap",
                    "sign_with_singpass",
                    "digital_signing_partner",
                    "manual_review"
                  ]
                },
                "allowed_signing_rails": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "clickwrap",
                      "sign_with_singpass",
                      "digital_signing_partner",
                      "manual_review"
                    ]
                  }
                },
                "required_authority_sources": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "manual_review",
                      "corppass_myinfo_business",
                      "singpass_myinfo"
                    ]
                  }
                },
                "allowed_commercial_package_ids": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "sandbox_developer",
                      "pilot_partner_api",
                      "production_partner_api",
                      "business_directory_advertiser_self_serve",
                      "business_directory_advertiser_managed",
                      "enterprise_bank_api",
                      "internal_first_party"
                    ]
                  }
                },
                "default_commercial_package_id": {
                  "type": "string",
                  "enum": [
                    "sandbox_developer",
                    "pilot_partner_api",
                    "production_partner_api",
                    "business_directory_advertiser_self_serve",
                    "business_directory_advertiser_managed",
                    "enterprise_bank_api",
                    "internal_first_party"
                  ]
                },
                "allowed_live_scopes": {
                  "type": "array",
                  "items": {
                    "type": "string",
                    "enum": [
                      "organizations.read",
                      "onboarding.write",
                      "credentials.write",
                      "listings.read",
                      "listings.write",
                      "viewings.read",
                      "viewings.write",
                      "webhooks.read",
                      "webhooks.write",
                      "sandbox.reset",
                      "agent.profile.read",
                      "agent.profile.write",
                      "agent.listings.read",
                      "agent.listings.write",
                      "agent.listings.publish",
                      "agent.leads.read",
                      "agent.leads.write",
                      "agent.clients.read",
                      "agent.clients.write",
                      "agent.viewings.read",
                      "agent.viewings.write",
                      "agent.distribution.read",
                      "agent.distribution.manage",
                      "agent.analytics.read",
                      "agency.roster.read",
                      "agency.roster.manage",
                      "agency.teams.manage",
                      "agency.listings.read",
                      "agency.listings.manage",
                      "agency.leads.route",
                      "agency.analytics.read",
                      "agency.audit.read",
                      "agency.integrations.manage",
                      "sites.read",
                      "sites.write",
                      "sites.publish",
                      "sites.domains.manage",
                      "forms.read",
                      "forms.write",
                      "forms.submissions.read",
                      "scheduling.read",
                      "scheduling.write",
                      "crm.read",
                      "crm.write",
                      "crm.sync",
                      "widgets.embed",
                      "developers.projects.read",
                      "developers.projects.write",
                      "developers.inventory.read",
                      "developers.inventory.write",
                      "developers.inventory.publish",
                      "developers.prices.read",
                      "developers.prices.write",
                      "developers.media.write",
                      "developers.showflat.read",
                      "developers.showflat.write",
                      "developers.leads.read",
                      "developers.leads.route",
                      "renovations.projects.read",
                      "renovations.projects.write",
                      "development_professional_services.projects.read",
                      "valuation_appraisal.cases.read",
                      "valuations.read",
                      "valuations.embed_keys.read",
                      "valuations.embed_keys.write",
                      "portfolio.read",
                      "property_management.units.read",
                      "geospatial.read",
                      "insurance_move_in.cases.read",
                      "insurance_move_in.cases.write",
                      "advertising.campaigns.read",
                      "advertising.campaigns.write",
                      "advertising.analytics.read",
                      "business_directory.profiles.read",
                      "business_directory.profiles.write",
                      "banks.frontends.read",
                      "banks.frontends.write",
                      "banks.frontends.publish",
                      "banks.eligibility.read",
                      "banks.rates.read",
                      "banks.products.read",
                      "banks.applications.read",
                      "banks.applications.write",
                      "banks.applications.status.write",
                      "banks.documents.read",
                      "banks.documents.manifest.write",
                      "banks.callbacks.manage",
                      "banks.staff.read",
                      "banks.staff.manage",
                      "banks.audit.read",
                      "official_sources.read",
                      "official_sources.datasets.read",
                      "official_sources.freshness.read",
                      "official_sources.audit.read",
                      "official_sources.refresh",
                      "official_sources.credentials.manage",
                      "official_sources.admin",
                      "services.bookings.read",
                      "services.payments.read",
                      "services.payments.write",
                      "services.payouts.read",
                      "services.payouts.manage",
                      "services.payouts.admin",
                      "services.settlement.reconcile",
                      "platform.billing_owner_visibility.read",
                      "platform.import_export_readiness.read",
                      "provider_workspace.read",
                      "provider_leads.read",
                      "provider_leads.manage",
                      "provider_bookings.read",
                      "provider_bookings.manage",
                      "provider_conversations.write",
                      "provider_integrations.manage",
                      "provider_integrations.sync",
                      "provider_catalog.read",
                      "provider_sites.read",
                      "provider_sites.write",
                      "provider_sites.publish",
                      "provider_ai.permissions.manage",
                      "transactions.read",
                      "transactions.write",
                      "transactions.documents.read",
                      "transactions.documents.write",
                      "transactions.milestones.write",
                      "conveyancing.matters.read",
                      "conveyancing.matters.write",
                      "conveyancing.law_firms.manage",
                      "conveyancing.audit.read",
                      "conveyancing.shares.write",
                      "stamp_duty.status.read",
                      "stamp_duty.status.write",
                      "consents.read",
                      "consents.write",
                      "document_shares.read",
                      "document_shares.write",
                      "agent_hosts.read",
                      "agent_hosts.write"
                    ]
                  }
                },
                "requires_business_authority": {
                  "type": "boolean"
                },
                "countersignature_required": {
                  "type": "boolean"
                },
                "signing_session_available": {
                  "type": "boolean"
                },
                "blocks_live_credentials_without_commercial_approval": {
                  "type": "boolean",
                  "enum": [
                    true
                  ]
                },
                "ai_agent_summary": {
                  "type": "string"
                },
                "blocked_claims": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "source_spec": {
                  "type": "string",
                  "enum": [
                    "docs/features/platform/PLATFORM_CONTRACT_SIGNING_AND_COMMERCIAL_TERMS_SPEC.md"
                  ]
                }
              }
            }
          },
          "default_package": {
            "type": "object",
            "required": [
              "id",
              "version"
            ],
            "properties": {
              "id": {
                "type": "string",
                "enum": [
                  "platform_service_provider_terms"
                ]
              },
              "version": {
                "type": "string",
                "enum": [
                  "2026.06"
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformContractEnvelopeCurrentResponse": {
        "type": "object",
        "required": [
          "product",
          "organization",
          "contract_envelope",
          "related_contract_evidence",
          "blocked_actions",
          "ai_agent_policy",
          "livemode",
          "request_id"
        ],
        "properties": {
          "product": {
            "type": "object",
            "required": [
              "id",
              "label",
              "target_actor",
              "launch_stage",
              "environment",
              "deployment_tier"
            ],
            "properties": {
              "id": {
                "type": "string",
                "enum": [
                  "service_provider_sandbox"
                ]
              },
              "label": {
                "type": "string"
              },
              "target_actor": {
                "type": "string",
                "enum": [
                  "service_provider"
                ]
              },
              "launch_stage": {
                "type": "string",
                "enum": [
                  "slice_1"
                ]
              },
              "environment": {
                "type": "string",
                "enum": [
                  "sandbox",
                  "live"
                ]
              },
              "deployment_tier": {
                "type": "string",
                "enum": [
                  "local",
                  "preview",
                  "sandbox",
                  "staging",
                  "production"
                ]
              }
            }
          },
          "organization": {
            "type": "object",
            "required": [
              "id",
              "slug",
              "display_name",
              "type"
            ],
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "slug": {
                "type": "string"
              },
              "display_name": {
                "type": "string"
              },
              "type": {
                "type": "string"
              }
            }
          },
          "contract_envelope": {
            "type": "object",
            "required": [
              "id",
              "state",
              "contract_package",
              "signing_rail",
              "signature_status",
              "authority",
              "signature",
              "commercial_approval",
              "signing_provider",
              "live_gate",
              "ai_agent_policy",
              "source",
              "derived_from"
            ],
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid",
                "nullable": true
              },
              "state": {
                "type": "string",
                "enum": [
                  "not_started",
                  "clickwrap_accepted",
                  "authority_pending",
                  "signature_pending",
                  "provider_processing",
                  "signed_pending_review",
                  "countersign_pending",
                  "active",
                  "expired",
                  "rejected",
                  "terminated",
                  "superseded"
                ]
              },
              "contract_package": {
                "type": "object",
                "required": [
                  "id",
                  "version",
                  "display_name",
                  "status",
                  "target_actor",
                  "allowed_environments",
                  "sandbox_terms_rail",
                  "allowed_signing_rails",
                  "required_authority_sources",
                  "allowed_commercial_package_ids",
                  "default_commercial_package_id",
                  "allowed_live_scopes",
                  "requires_business_authority",
                  "countersignature_required",
                  "signing_session_available",
                  "blocks_live_credentials_without_commercial_approval",
                  "ai_agent_summary",
                  "blocked_claims",
                  "source_spec"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "version": {
                    "type": "string"
                  },
                  "display_name": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "active",
                      "draft",
                      "deprecated",
                      "retired",
                      "unregistered"
                    ]
                  },
                  "target_actor": {
                    "type": "string",
                    "enum": [
                      "service_provider",
                      "bank_partner",
                      "conveyancing_firm",
                      "agent_agency",
                      "advertiser",
                      "landlord_owner"
                    ]
                  },
                  "allowed_environments": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "sandbox",
                        "live"
                      ]
                    }
                  },
                  "sandbox_terms_rail": {
                    "type": "string",
                    "enum": [
                      "clickwrap",
                      "sign_with_singpass",
                      "digital_signing_partner",
                      "manual_review"
                    ]
                  },
                  "allowed_signing_rails": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "clickwrap",
                        "sign_with_singpass",
                        "digital_signing_partner",
                        "manual_review"
                      ]
                    }
                  },
                  "required_authority_sources": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "manual_review",
                        "corppass_myinfo_business",
                        "singpass_myinfo"
                      ]
                    }
                  },
                  "allowed_commercial_package_ids": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "sandbox_developer",
                        "pilot_partner_api",
                        "production_partner_api",
                        "business_directory_advertiser_self_serve",
                        "business_directory_advertiser_managed",
                        "enterprise_bank_api",
                        "internal_first_party"
                      ]
                    }
                  },
                  "default_commercial_package_id": {
                    "type": "string",
                    "enum": [
                      "sandbox_developer",
                      "pilot_partner_api",
                      "production_partner_api",
                      "business_directory_advertiser_self_serve",
                      "business_directory_advertiser_managed",
                      "enterprise_bank_api",
                      "internal_first_party"
                    ]
                  },
                  "allowed_live_scopes": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "organizations.read",
                        "onboarding.write",
                        "credentials.write",
                        "listings.read",
                        "listings.write",
                        "viewings.read",
                        "viewings.write",
                        "webhooks.read",
                        "webhooks.write",
                        "sandbox.reset",
                        "agent.profile.read",
                        "agent.profile.write",
                        "agent.listings.read",
                        "agent.listings.write",
                        "agent.listings.publish",
                        "agent.leads.read",
                        "agent.leads.write",
                        "agent.clients.read",
                        "agent.clients.write",
                        "agent.viewings.read",
                        "agent.viewings.write",
                        "agent.distribution.read",
                        "agent.distribution.manage",
                        "agent.analytics.read",
                        "agency.roster.read",
                        "agency.roster.manage",
                        "agency.teams.manage",
                        "agency.listings.read",
                        "agency.listings.manage",
                        "agency.leads.route",
                        "agency.analytics.read",
                        "agency.audit.read",
                        "agency.integrations.manage",
                        "sites.read",
                        "sites.write",
                        "sites.publish",
                        "sites.domains.manage",
                        "forms.read",
                        "forms.write",
                        "forms.submissions.read",
                        "scheduling.read",
                        "scheduling.write",
                        "crm.read",
                        "crm.write",
                        "crm.sync",
                        "widgets.embed",
                        "developers.projects.read",
                        "developers.projects.write",
                        "developers.inventory.read",
                        "developers.inventory.write",
                        "developers.inventory.publish",
                        "developers.prices.read",
                        "developers.prices.write",
                        "developers.media.write",
                        "developers.showflat.read",
                        "developers.showflat.write",
                        "developers.leads.read",
                        "developers.leads.route",
                        "renovations.projects.read",
                        "renovations.projects.write",
                        "development_professional_services.projects.read",
                        "valuation_appraisal.cases.read",
                        "valuations.read",
                        "valuations.embed_keys.read",
                        "valuations.embed_keys.write",
                        "portfolio.read",
                        "property_management.units.read",
                        "geospatial.read",
                        "insurance_move_in.cases.read",
                        "insurance_move_in.cases.write",
                        "advertising.campaigns.read",
                        "advertising.campaigns.write",
                        "advertising.analytics.read",
                        "business_directory.profiles.read",
                        "business_directory.profiles.write",
                        "banks.frontends.read",
                        "banks.frontends.write",
                        "banks.frontends.publish",
                        "banks.eligibility.read",
                        "banks.rates.read",
                        "banks.products.read",
                        "banks.applications.read",
                        "banks.applications.write",
                        "banks.applications.status.write",
                        "banks.documents.read",
                        "banks.documents.manifest.write",
                        "banks.callbacks.manage",
                        "banks.staff.read",
                        "banks.staff.manage",
                        "banks.audit.read",
                        "official_sources.read",
                        "official_sources.datasets.read",
                        "official_sources.freshness.read",
                        "official_sources.audit.read",
                        "official_sources.refresh",
                        "official_sources.credentials.manage",
                        "official_sources.admin",
                        "services.bookings.read",
                        "services.payments.read",
                        "services.payments.write",
                        "services.payouts.read",
                        "services.payouts.manage",
                        "services.payouts.admin",
                        "services.settlement.reconcile",
                        "platform.billing_owner_visibility.read",
                        "platform.import_export_readiness.read",
                        "provider_workspace.read",
                        "provider_leads.read",
                        "provider_leads.manage",
                        "provider_bookings.read",
                        "provider_bookings.manage",
                        "provider_conversations.write",
                        "provider_integrations.manage",
                        "provider_integrations.sync",
                        "provider_catalog.read",
                        "provider_sites.read",
                        "provider_sites.write",
                        "provider_sites.publish",
                        "provider_ai.permissions.manage",
                        "transactions.read",
                        "transactions.write",
                        "transactions.documents.read",
                        "transactions.documents.write",
                        "transactions.milestones.write",
                        "conveyancing.matters.read",
                        "conveyancing.matters.write",
                        "conveyancing.law_firms.manage",
                        "conveyancing.audit.read",
                        "conveyancing.shares.write",
                        "stamp_duty.status.read",
                        "stamp_duty.status.write",
                        "consents.read",
                        "consents.write",
                        "document_shares.read",
                        "document_shares.write",
                        "agent_hosts.read",
                        "agent_hosts.write"
                      ]
                    }
                  },
                  "requires_business_authority": {
                    "type": "boolean"
                  },
                  "countersignature_required": {
                    "type": "boolean"
                  },
                  "signing_session_available": {
                    "type": "boolean"
                  },
                  "blocks_live_credentials_without_commercial_approval": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "ai_agent_summary": {
                    "type": "string"
                  },
                  "blocked_claims": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "source_spec": {
                    "type": "string",
                    "enum": [
                      "docs/features/platform/PLATFORM_CONTRACT_SIGNING_AND_COMMERCIAL_TERMS_SPEC.md"
                    ]
                  }
                }
              },
              "signing_rail": {
                "type": "string",
                "enum": [
                  "clickwrap",
                  "sign_with_singpass",
                  "digital_signing_partner",
                  "manual_review"
                ],
                "nullable": true
              },
              "signature_status": {
                "type": "string",
                "enum": [
                  "not_started",
                  "draft",
                  "sent",
                  "signed",
                  "countersigned",
                  "declined",
                  "expired",
                  "manual_review"
                ]
              },
              "authority": {
                "type": "object",
                "required": [
                  "required_for_live",
                  "recorded",
                  "accepted_sources",
                  "identity_rail_is_not_signature"
                ],
                "properties": {
                  "required_for_live": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "recorded": {
                    "type": "boolean"
                  },
                  "accepted_sources": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "manual_review",
                        "corppass_myinfo_business",
                        "singpass_myinfo"
                      ]
                    }
                  },
                  "identity_rail_is_not_signature": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  }
                }
              },
              "signature": {
                "type": "object",
                "required": [
                  "recorded",
                  "provider_signature_received",
                  "countersignature_required",
                  "countersignature_recorded",
                  "document_hash_recorded",
                  "evidence_reference_recorded",
                  "raw_document_available",
                  "signed_at",
                  "countersigned_at",
                  "expires_at",
                  "source"
                ],
                "properties": {
                  "recorded": {
                    "type": "boolean"
                  },
                  "provider_signature_received": {
                    "type": "boolean"
                  },
                  "countersignature_required": {
                    "type": "boolean"
                  },
                  "countersignature_recorded": {
                    "type": "boolean"
                  },
                  "document_hash_recorded": {
                    "type": "boolean"
                  },
                  "evidence_reference_recorded": {
                    "type": "boolean"
                  },
                  "raw_document_available": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "signed_at": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "countersigned_at": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "expires_at": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "source": {
                    "type": "string",
                    "enum": [
                      "platform.onboarding_contract_signatures",
                      "computed_fallback"
                    ]
                  }
                }
              },
              "commercial_approval": {
                "type": "object",
                "required": [
                  "required_for_live",
                  "recorded",
                  "status",
                  "commercial_terms_id",
                  "commercial_package_id",
                  "approval_reference",
                  "billing_account_required",
                  "billing_account_recorded",
                  "approved_live_scope_count",
                  "effective_from",
                  "effective_until",
                  "source"
                ],
                "properties": {
                  "required_for_live": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "recorded": {
                    "type": "boolean"
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "missing",
                      "draft",
                      "pending_review",
                      "approved",
                      "active",
                      "suspended",
                      "expired",
                      "declined"
                    ]
                  },
                  "commercial_terms_id": {
                    "type": "string",
                    "nullable": true
                  },
                  "commercial_package_id": {
                    "type": "string",
                    "enum": [
                      "sandbox_developer",
                      "pilot_partner_api",
                      "production_partner_api",
                      "business_directory_advertiser_self_serve",
                      "business_directory_advertiser_managed",
                      "enterprise_bank_api",
                      "internal_first_party"
                    ]
                  },
                  "approval_reference": {
                    "type": "string",
                    "nullable": true
                  },
                  "billing_account_required": {
                    "type": "boolean"
                  },
                  "billing_account_recorded": {
                    "type": "boolean"
                  },
                  "approved_live_scope_count": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "effective_from": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "effective_until": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "source": {
                    "type": "string",
                    "enum": [
                      "platform.onboarding_commercial_terms",
                      "computed_fallback"
                    ]
                  }
                }
              },
              "signing_provider": {
                "type": "object",
                "required": [
                  "signing_session_available",
                  "provider_selection_required",
                  "allowed_rails",
                  "callback_expected",
                  "direct_singpass_available",
                  "digital_signing_partner_available"
                ],
                "properties": {
                  "signing_session_available": {
                    "type": "boolean"
                  },
                  "provider_selection_required": {
                    "type": "boolean"
                  },
                  "allowed_rails": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "clickwrap",
                        "sign_with_singpass",
                        "digital_signing_partner",
                        "manual_review"
                      ]
                    }
                  },
                  "callback_expected": {
                    "type": "boolean"
                  },
                  "direct_singpass_available": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "digital_signing_partner_available": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              },
              "live_gate": {
                "type": "object",
                "required": [
                  "satisfies_contract_gate",
                  "satisfies_live_contract_gate",
                  "missing_gate_ids",
                  "creates_live_credentials",
                  "human_approval_required"
                ],
                "properties": {
                  "satisfies_contract_gate": {
                    "type": "boolean"
                  },
                  "satisfies_live_contract_gate": {
                    "type": "boolean"
                  },
                  "missing_gate_ids": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "creates_live_credentials": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "human_approval_required": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  }
                }
              },
              "ai_agent_policy": {
                "type": "object",
                "required": [
                  "read_only",
                  "launch_signing_allowed",
                  "raw_documents_exposed",
                  "signing_provider_payloads_exposed"
                ],
                "properties": {
                  "read_only": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "launch_signing_allowed": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_documents_exposed": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "signing_provider_payloads_exposed": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              },
              "source": {
                "type": "string",
                "enum": [
                  "platform.onboarding_contract_signatures",
                  "computed_fallback"
                ]
              },
              "derived_from": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "related_contract_evidence": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "signing_rail",
                "signature_status",
                "document_hash_recorded",
                "evidence_reference_recorded",
                "signed_at",
                "countersigned_at",
                "expires_at",
                "source"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid",
                  "nullable": true
                },
                "signing_rail": {
                  "type": "string",
                  "enum": [
                    "clickwrap",
                    "sign_with_singpass",
                    "digital_signing_partner",
                    "manual_review"
                  ]
                },
                "signature_status": {
                  "type": "string",
                  "enum": [
                    "not_started",
                    "draft",
                    "sent",
                    "signed",
                    "countersigned",
                    "declined",
                    "expired",
                    "manual_review"
                  ]
                },
                "document_hash_recorded": {
                  "type": "boolean"
                },
                "evidence_reference_recorded": {
                  "type": "boolean"
                },
                "signed_at": {
                  "type": "string",
                  "format": "date-time",
                  "nullable": true
                },
                "countersigned_at": {
                  "type": "string",
                  "format": "date-time",
                  "nullable": true
                },
                "expires_at": {
                  "type": "string",
                  "format": "date-time",
                  "nullable": true
                },
                "source": {
                  "type": "string",
                  "enum": [
                    "platform.onboarding_contract_signatures",
                    "computed_fallback"
                  ]
                }
              }
            }
          },
          "blocked_actions": {
            "type": "array",
            "items": {
              "allOf": [
                {
                  "type": "object",
                  "required": [
                    "id",
                    "label",
                    "kind",
                    "href",
                    "sensitivity",
                    "idempotency_required",
                    "confirmation_required",
                    "human_approval_required"
                  ],
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "label": {
                      "type": "string"
                    },
                    "kind": {
                      "type": "string",
                      "enum": [
                        "read",
                        "write",
                        "external_handoff"
                      ]
                    },
                    "href": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "sensitivity": {
                      "type": "string",
                      "enum": [
                        "public",
                        "partner",
                        "confidential",
                        "regulated"
                      ]
                    },
                    "idempotency_required": {
                      "type": "boolean"
                    },
                    "confirmation_required": {
                      "type": "boolean"
                    },
                    "human_approval_required": {
                      "type": "boolean"
                    }
                  }
                },
                {
                  "type": "object",
                  "required": [
                    "reason",
                    "missing_gate_ids"
                  ],
                  "properties": {
                    "reason": {
                      "type": "string"
                    },
                    "missing_gate_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              ]
            }
          },
          "ai_agent_policy": {
            "type": "object",
            "required": [
              "default_authority",
              "read_only",
              "mutating_actions_require_human_approval",
              "launch_signing_allowed",
              "raw_documents_exposed",
              "signing_provider_payloads_exposed",
              "blocked_action_ids",
              "tool_contract"
            ],
            "properties": {
              "default_authority": {
                "type": "string",
                "enum": [
                  "read_and_draft_only"
                ]
              },
              "read_only": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "mutating_actions_require_human_approval": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "launch_signing_allowed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_documents_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "signing_provider_payloads_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "blocked_action_ids": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "tool_contract": {
                "type": "string"
              }
            }
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformOnboardingReadinessResponse": {
        "type": "object",
        "required": [
          "product",
          "organization",
          "readiness",
          "application",
          "contract_evidence",
          "contract_lifecycle",
          "state_machine",
          "evidence",
          "missing_gates",
          "allowed_actions",
          "blocked_actions",
          "fallbacks",
          "status_components",
          "support",
          "ai_agent_policy",
          "livemode",
          "request_id"
        ],
        "properties": {
          "product": {
            "type": "object",
            "required": [
              "id",
              "label",
              "target_actor",
              "launch_stage",
              "environment",
              "deployment_tier"
            ],
            "properties": {
              "id": {
                "type": "string",
                "enum": [
                  "service_provider_sandbox"
                ]
              },
              "label": {
                "type": "string"
              },
              "target_actor": {
                "type": "string",
                "enum": [
                  "service_provider"
                ]
              },
              "launch_stage": {
                "type": "string",
                "enum": [
                  "slice_1"
                ]
              },
              "environment": {
                "type": "string",
                "enum": [
                  "sandbox",
                  "live"
                ]
              },
              "deployment_tier": {
                "type": "string",
                "enum": [
                  "local",
                  "preview",
                  "sandbox",
                  "staging",
                  "production"
                ]
              }
            }
          },
          "organization": {
            "type": "object",
            "required": [
              "id",
              "slug",
              "display_name",
              "type"
            ],
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "slug": {
                "type": "string"
              },
              "display_name": {
                "type": "string"
              },
              "type": {
                "type": "string"
              }
            }
          },
          "readiness": {
            "type": "object",
            "required": [
              "state",
              "sandbox_access",
              "live_access",
              "credential_self_service"
            ],
            "properties": {
              "state": {
                "type": "string",
                "enum": [
                  "sandbox_ready_live_blocked",
                  "live_review_pending",
                  "live_approved",
                  "suspended"
                ]
              },
              "sandbox_access": {
                "type": "string",
                "enum": [
                  "unavailable",
                  "available",
                  "suspended"
                ]
              },
              "live_access": {
                "type": "string",
                "enum": [
                  "blocked_manual_review",
                  "review_pending",
                  "approved",
                  "suspended"
                ]
              },
              "credential_self_service": {
                "type": "string",
                "enum": [
                  "deferred_until_reviewed_slice",
                  "sandbox_available",
                  "live_blocked",
                  "disabled"
                ]
              }
            }
          },
          "application": {
            "type": "object",
            "required": [
              "id",
              "product_id",
              "target_actor",
              "state",
              "sandbox_access",
              "live_access",
              "credential_self_service",
              "contract_package",
              "support_owner_email",
              "technical_owner_email",
              "submitted_at",
              "reviewed_at",
              "approved_at",
              "suspended_at",
              "updated_at",
              "source"
            ],
            "properties": {
              "id": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "uuid"
              },
              "product_id": {
                "type": "string",
                "enum": [
                  "service_provider_sandbox"
                ]
              },
              "target_actor": {
                "type": "string",
                "enum": [
                  "service_provider"
                ]
              },
              "state": {
                "type": "string",
                "enum": [
                  "draft",
                  "terms_pending",
                  "sandbox_ready",
                  "live_review_pending",
                  "live_approved",
                  "suspended",
                  "offboarded"
                ]
              },
              "sandbox_access": {
                "type": "string",
                "enum": [
                  "unavailable",
                  "available",
                  "suspended"
                ]
              },
              "live_access": {
                "type": "string",
                "enum": [
                  "blocked_manual_review",
                  "review_pending",
                  "approved",
                  "suspended"
                ]
              },
              "credential_self_service": {
                "type": "string",
                "enum": [
                  "deferred_until_reviewed_slice",
                  "sandbox_available",
                  "live_blocked",
                  "disabled"
                ]
              },
              "contract_package": {
                "type": "object",
                "required": [
                  "id",
                  "version"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "version": {
                    "type": "string"
                  }
                }
              },
              "support_owner_email": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "email"
              },
              "technical_owner_email": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "email"
              },
              "submitted_at": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "reviewed_at": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "approved_at": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "suspended_at": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "updated_at": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "source": {
                "type": "string",
                "enum": [
                  "platform.onboarding_applications",
                  "computed_fallback"
                ]
              }
            }
          },
          "contract_evidence": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "contract_package",
                "signing_rail",
                "signature_status",
                "document_hash_algorithm",
                "document_hash",
                "evidence_reference",
                "signer_display_name",
                "signer_role",
                "signer_authority_source",
                "signed_at",
                "countersigned_at",
                "expires_at",
                "source"
              ],
              "properties": {
                "id": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "uuid"
                },
                "contract_package": {
                  "type": "object",
                  "required": [
                    "id",
                    "version"
                  ],
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "version": {
                      "type": "string"
                    }
                  }
                },
                "signing_rail": {
                  "type": "string",
                  "enum": [
                    "clickwrap",
                    "sign_with_singpass",
                    "digital_signing_partner",
                    "manual_review"
                  ]
                },
                "signature_status": {
                  "type": "string",
                  "enum": [
                    "not_started",
                    "draft",
                    "sent",
                    "signed",
                    "countersigned",
                    "declined",
                    "expired",
                    "manual_review"
                  ]
                },
                "document_hash_algorithm": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "enum": [
                    "sha256",
                    null
                  ]
                },
                "document_hash": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "evidence_reference": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "signer_display_name": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "signer_role": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "signer_authority_source": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "signed_at": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "countersigned_at": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "expires_at": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "format": "date-time"
                },
                "source": {
                  "type": "string",
                  "enum": [
                    "platform.onboarding_contract_signatures",
                    "computed_fallback"
                  ]
                }
              }
            }
          },
          "contract_lifecycle": {
            "type": "object",
            "required": [
              "state",
              "contract_package",
              "signing_rails",
              "business_authority",
              "commercial_approval",
              "commercial_packages",
              "commercial_terms",
              "live_gate",
              "source_documents"
            ],
            "properties": {
              "state": {
                "type": "string",
                "enum": [
                  "terms_not_accepted",
                  "signature_pending",
                  "signature_recorded",
                  "manual_review",
                  "expired",
                  "declined"
                ]
              },
              "contract_package": {
                "type": "object",
                "required": [
                  "id",
                  "version",
                  "display_name",
                  "status",
                  "target_actor",
                  "allowed_environments",
                  "sandbox_terms_rail",
                  "allowed_signing_rails",
                  "required_authority_sources",
                  "allowed_commercial_package_ids",
                  "default_commercial_package_id",
                  "allowed_live_scopes",
                  "requires_business_authority",
                  "countersignature_required",
                  "signing_session_available",
                  "blocks_live_credentials_without_commercial_approval",
                  "ai_agent_summary",
                  "blocked_claims",
                  "source_spec"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "version": {
                    "type": "string"
                  },
                  "display_name": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "active",
                      "draft",
                      "deprecated",
                      "retired",
                      "unregistered"
                    ]
                  },
                  "target_actor": {
                    "type": "string",
                    "enum": [
                      "service_provider",
                      "bank_partner",
                      "conveyancing_firm",
                      "agent_agency",
                      "advertiser",
                      "landlord_owner"
                    ]
                  },
                  "allowed_environments": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "sandbox",
                        "live"
                      ]
                    }
                  },
                  "sandbox_terms_rail": {
                    "type": "string",
                    "enum": [
                      "clickwrap",
                      "sign_with_singpass",
                      "digital_signing_partner",
                      "manual_review"
                    ]
                  },
                  "allowed_signing_rails": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "clickwrap",
                        "sign_with_singpass",
                        "digital_signing_partner",
                        "manual_review"
                      ]
                    }
                  },
                  "required_authority_sources": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "manual_review",
                        "corppass_myinfo_business",
                        "singpass_myinfo"
                      ]
                    }
                  },
                  "allowed_commercial_package_ids": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "sandbox_developer",
                        "pilot_partner_api",
                        "production_partner_api",
                        "business_directory_advertiser_self_serve",
                        "business_directory_advertiser_managed",
                        "enterprise_bank_api",
                        "internal_first_party"
                      ]
                    }
                  },
                  "default_commercial_package_id": {
                    "type": "string",
                    "enum": [
                      "sandbox_developer",
                      "pilot_partner_api",
                      "production_partner_api",
                      "business_directory_advertiser_self_serve",
                      "business_directory_advertiser_managed",
                      "enterprise_bank_api",
                      "internal_first_party"
                    ]
                  },
                  "allowed_live_scopes": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "organizations.read",
                        "onboarding.write",
                        "credentials.write",
                        "listings.read",
                        "listings.write",
                        "viewings.read",
                        "viewings.write",
                        "webhooks.read",
                        "webhooks.write",
                        "sandbox.reset",
                        "agent.profile.read",
                        "agent.profile.write",
                        "agent.listings.read",
                        "agent.listings.write",
                        "agent.listings.publish",
                        "agent.leads.read",
                        "agent.leads.write",
                        "agent.clients.read",
                        "agent.clients.write",
                        "agent.viewings.read",
                        "agent.viewings.write",
                        "agent.distribution.read",
                        "agent.distribution.manage",
                        "agent.analytics.read",
                        "agency.roster.read",
                        "agency.roster.manage",
                        "agency.teams.manage",
                        "agency.listings.read",
                        "agency.listings.manage",
                        "agency.leads.route",
                        "agency.analytics.read",
                        "agency.audit.read",
                        "agency.integrations.manage",
                        "sites.read",
                        "sites.write",
                        "sites.publish",
                        "sites.domains.manage",
                        "forms.read",
                        "forms.write",
                        "forms.submissions.read",
                        "scheduling.read",
                        "scheduling.write",
                        "crm.read",
                        "crm.write",
                        "crm.sync",
                        "widgets.embed",
                        "developers.projects.read",
                        "developers.projects.write",
                        "developers.inventory.read",
                        "developers.inventory.write",
                        "developers.inventory.publish",
                        "developers.prices.read",
                        "developers.prices.write",
                        "developers.media.write",
                        "developers.showflat.read",
                        "developers.showflat.write",
                        "developers.leads.read",
                        "developers.leads.route",
                        "renovations.projects.read",
                        "renovations.projects.write",
                        "development_professional_services.projects.read",
                        "valuation_appraisal.cases.read",
                        "valuations.read",
                        "valuations.embed_keys.read",
                        "valuations.embed_keys.write",
                        "portfolio.read",
                        "property_management.units.read",
                        "geospatial.read",
                        "insurance_move_in.cases.read",
                        "insurance_move_in.cases.write",
                        "advertising.campaigns.read",
                        "advertising.campaigns.write",
                        "advertising.analytics.read",
                        "business_directory.profiles.read",
                        "business_directory.profiles.write",
                        "banks.frontends.read",
                        "banks.frontends.write",
                        "banks.frontends.publish",
                        "banks.eligibility.read",
                        "banks.rates.read",
                        "banks.products.read",
                        "banks.applications.read",
                        "banks.applications.write",
                        "banks.applications.status.write",
                        "banks.documents.read",
                        "banks.documents.manifest.write",
                        "banks.callbacks.manage",
                        "banks.staff.read",
                        "banks.staff.manage",
                        "banks.audit.read",
                        "official_sources.read",
                        "official_sources.datasets.read",
                        "official_sources.freshness.read",
                        "official_sources.audit.read",
                        "official_sources.refresh",
                        "official_sources.credentials.manage",
                        "official_sources.admin",
                        "services.bookings.read",
                        "services.payments.read",
                        "services.payments.write",
                        "services.payouts.read",
                        "services.payouts.manage",
                        "services.payouts.admin",
                        "services.settlement.reconcile",
                        "platform.billing_owner_visibility.read",
                        "platform.import_export_readiness.read",
                        "provider_workspace.read",
                        "provider_leads.read",
                        "provider_leads.manage",
                        "provider_bookings.read",
                        "provider_bookings.manage",
                        "provider_conversations.write",
                        "provider_integrations.manage",
                        "provider_integrations.sync",
                        "provider_catalog.read",
                        "provider_sites.read",
                        "provider_sites.write",
                        "provider_sites.publish",
                        "provider_ai.permissions.manage",
                        "transactions.read",
                        "transactions.write",
                        "transactions.documents.read",
                        "transactions.documents.write",
                        "transactions.milestones.write",
                        "conveyancing.matters.read",
                        "conveyancing.matters.write",
                        "conveyancing.law_firms.manage",
                        "conveyancing.audit.read",
                        "conveyancing.shares.write",
                        "stamp_duty.status.read",
                        "stamp_duty.status.write",
                        "consents.read",
                        "consents.write",
                        "document_shares.read",
                        "document_shares.write",
                        "agent_hosts.read",
                        "agent_hosts.write"
                      ]
                    }
                  },
                  "requires_business_authority": {
                    "type": "boolean"
                  },
                  "countersignature_required": {
                    "type": "boolean"
                  },
                  "signing_session_available": {
                    "type": "boolean"
                  },
                  "blocks_live_credentials_without_commercial_approval": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "ai_agent_summary": {
                    "type": "string"
                  },
                  "blocked_claims": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "source_spec": {
                    "type": "string",
                    "enum": [
                      "docs/features/platform/PLATFORM_CONTRACT_SIGNING_AND_COMMERCIAL_TERMS_SPEC.md"
                    ]
                  }
                }
              },
              "signing_rails": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "rail",
                    "availability",
                    "purpose",
                    "human_approval_required",
                    "reason"
                  ],
                  "properties": {
                    "rail": {
                      "type": "string",
                      "enum": [
                        "clickwrap",
                        "sign_with_singpass",
                        "digital_signing_partner",
                        "manual_review"
                      ]
                    },
                    "availability": {
                      "type": "string",
                      "enum": [
                        "available",
                        "blocked",
                        "complete",
                        "planned"
                      ]
                    },
                    "purpose": {
                      "type": "string",
                      "enum": [
                        "sandbox_terms_acceptance",
                        "contract_signature"
                      ]
                    },
                    "human_approval_required": {
                      "type": "boolean"
                    },
                    "reason": {
                      "type": "string"
                    }
                  }
                }
              },
              "business_authority": {
                "type": "object",
                "required": [
                  "required_for_live",
                  "recorded",
                  "accepted_sources",
                  "identity_rail_is_not_signature"
                ],
                "properties": {
                  "required_for_live": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "recorded": {
                    "type": "boolean"
                  },
                  "accepted_sources": {
                    "type": "array",
                    "items": {
                      "type": "string",
                      "enum": [
                        "manual_review",
                        "corppass_myinfo_business",
                        "singpass_myinfo"
                      ]
                    }
                  },
                  "identity_rail_is_not_signature": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  }
                }
              },
              "commercial_approval": {
                "type": "object",
                "required": [
                  "required_for_live",
                  "recorded",
                  "status",
                  "commercial_terms_id",
                  "commercial_package_id",
                  "approval_reference",
                  "billing_account_required",
                  "billing_account_recorded",
                  "approved_live_scope_count",
                  "effective_from",
                  "effective_until",
                  "source"
                ],
                "properties": {
                  "required_for_live": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "recorded": {
                    "type": "boolean"
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "missing",
                      "draft",
                      "pending_review",
                      "approved",
                      "active",
                      "suspended",
                      "expired",
                      "declined"
                    ]
                  },
                  "commercial_terms_id": {
                    "type": "string",
                    "nullable": true
                  },
                  "commercial_package_id": {
                    "type": "string",
                    "enum": [
                      "sandbox_developer",
                      "pilot_partner_api",
                      "production_partner_api",
                      "business_directory_advertiser_self_serve",
                      "business_directory_advertiser_managed",
                      "enterprise_bank_api",
                      "internal_first_party"
                    ]
                  },
                  "approval_reference": {
                    "type": "string",
                    "nullable": true
                  },
                  "billing_account_required": {
                    "type": "boolean"
                  },
                  "billing_account_recorded": {
                    "type": "boolean"
                  },
                  "approved_live_scope_count": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "effective_from": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "effective_until": {
                    "type": "string",
                    "format": "date-time",
                    "nullable": true
                  },
                  "source": {
                    "type": "string",
                    "enum": [
                      "platform.onboarding_commercial_terms",
                      "computed_fallback"
                    ]
                  }
                }
              },
              "commercial_packages": {
                "type": "object",
                "required": [
                  "sandbox",
                  "target_live"
                ],
                "properties": {
                  "sandbox": {
                    "type": "object",
                    "required": [
                      "id",
                      "display_name",
                      "tier",
                      "overage_mode",
                      "billing_account_required_for_live",
                      "observe_only_launch",
                      "support_tier",
                      "sla_posture",
                      "status_page_visibility"
                    ],
                    "properties": {
                      "id": {
                        "type": "string",
                        "enum": [
                          "sandbox_developer",
                          "pilot_partner_api",
                          "production_partner_api",
                          "business_directory_advertiser_self_serve",
                          "business_directory_advertiser_managed",
                          "enterprise_bank_api",
                          "internal_first_party"
                        ]
                      },
                      "display_name": {
                        "type": "string"
                      },
                      "tier": {
                        "type": "string",
                        "enum": [
                          "sandbox_developer",
                          "pilot_partner",
                          "production_partner",
                          "advertiser",
                          "enterprise_bank",
                          "internal_first_party"
                        ]
                      },
                      "overage_mode": {
                        "type": "string",
                        "enum": [
                          "non_billable",
                          "observe_only",
                          "manual_review",
                          "finance_approved_only"
                        ]
                      },
                      "billing_account_required_for_live": {
                        "type": "boolean"
                      },
                      "observe_only_launch": {
                        "type": "boolean"
                      },
                      "support_tier": {
                        "type": "string",
                        "enum": [
                          "async",
                          "named_owner",
                          "production",
                          "enterprise",
                          "internal"
                        ]
                      },
                      "sla_posture": {
                        "type": "string",
                        "enum": [
                          "none",
                          "internal_slo",
                          "measured_internal",
                          "contractual_deferred"
                        ]
                      },
                      "status_page_visibility": {
                        "type": "string",
                        "enum": [
                          "none",
                          "internal",
                          "partner_visible",
                          "contract_specific"
                        ]
                      }
                    }
                  },
                  "target_live": {
                    "type": "object",
                    "required": [
                      "id",
                      "display_name",
                      "tier",
                      "overage_mode",
                      "billing_account_required_for_live",
                      "observe_only_launch",
                      "support_tier",
                      "sla_posture",
                      "status_page_visibility"
                    ],
                    "properties": {
                      "id": {
                        "type": "string",
                        "enum": [
                          "sandbox_developer",
                          "pilot_partner_api",
                          "production_partner_api",
                          "business_directory_advertiser_self_serve",
                          "business_directory_advertiser_managed",
                          "enterprise_bank_api",
                          "internal_first_party"
                        ]
                      },
                      "display_name": {
                        "type": "string"
                      },
                      "tier": {
                        "type": "string",
                        "enum": [
                          "sandbox_developer",
                          "pilot_partner",
                          "production_partner",
                          "advertiser",
                          "enterprise_bank",
                          "internal_first_party"
                        ]
                      },
                      "overage_mode": {
                        "type": "string",
                        "enum": [
                          "non_billable",
                          "observe_only",
                          "manual_review",
                          "finance_approved_only"
                        ]
                      },
                      "billing_account_required_for_live": {
                        "type": "boolean"
                      },
                      "observe_only_launch": {
                        "type": "boolean"
                      },
                      "support_tier": {
                        "type": "string",
                        "enum": [
                          "async",
                          "named_owner",
                          "production",
                          "enterprise",
                          "internal"
                        ]
                      },
                      "sla_posture": {
                        "type": "string",
                        "enum": [
                          "none",
                          "internal_slo",
                          "measured_internal",
                          "contractual_deferred"
                        ]
                      },
                      "status_page_visibility": {
                        "type": "string",
                        "enum": [
                          "none",
                          "internal",
                          "partner_visible",
                          "contract_specific"
                        ]
                      }
                    }
                  }
                }
              },
              "commercial_terms": {
                "type": "object",
                "required": [
                  "currency",
                  "sandbox_billing",
                  "live_billing_mode",
                  "platform_access_fee",
                  "api_usage_fee",
                  "provider_onboarding_fee",
                  "default_marketplace_commission",
                  "legacy_commission_inheritance"
                ],
                "properties": {
                  "currency": {
                    "type": "string",
                    "enum": [
                      "SGD"
                    ]
                  },
                  "sandbox_billing": {
                    "type": "string",
                    "enum": [
                      "none",
                      "non_billable",
                      "observe_only_until_signed_package",
                      "zero_unless_signed_package",
                      "zero_until_usage_billing_package",
                      "blocked_without_signed_package"
                    ]
                  },
                  "live_billing_mode": {
                    "type": "string",
                    "enum": [
                      "none",
                      "non_billable",
                      "observe_only_until_signed_package",
                      "zero_unless_signed_package",
                      "zero_until_usage_billing_package",
                      "blocked_without_signed_package"
                    ]
                  },
                  "platform_access_fee": {
                    "type": "string",
                    "enum": [
                      "none",
                      "non_billable",
                      "observe_only_until_signed_package",
                      "zero_unless_signed_package",
                      "zero_until_usage_billing_package",
                      "blocked_without_signed_package"
                    ]
                  },
                  "api_usage_fee": {
                    "type": "string",
                    "enum": [
                      "none",
                      "non_billable",
                      "observe_only_until_signed_package",
                      "zero_unless_signed_package",
                      "zero_until_usage_billing_package",
                      "blocked_without_signed_package"
                    ]
                  },
                  "provider_onboarding_fee": {
                    "type": "string",
                    "enum": [
                      "none",
                      "non_billable",
                      "observe_only_until_signed_package",
                      "zero_unless_signed_package",
                      "zero_until_usage_billing_package",
                      "blocked_without_signed_package"
                    ]
                  },
                  "default_marketplace_commission": {
                    "type": "string",
                    "enum": [
                      "none",
                      "non_billable",
                      "observe_only_until_signed_package",
                      "zero_unless_signed_package",
                      "zero_until_usage_billing_package",
                      "blocked_without_signed_package"
                    ]
                  },
                  "legacy_commission_inheritance": {
                    "type": "string",
                    "enum": [
                      "none",
                      "non_billable",
                      "observe_only_until_signed_package",
                      "zero_unless_signed_package",
                      "zero_until_usage_billing_package",
                      "blocked_without_signed_package"
                    ]
                  }
                }
              },
              "live_gate": {
                "type": "object",
                "required": [
                  "requires_active_contract",
                  "requires_business_authority",
                  "requires_commercial_approval",
                  "creates_live_credentials",
                  "legacy_fee_terms_blocked"
                ],
                "properties": {
                  "requires_active_contract": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "requires_business_authority": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "requires_commercial_approval": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "creates_live_credentials": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "legacy_fee_terms_blocked": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              },
              "source_documents": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "state_machine": {
            "type": "object",
            "required": [
              "current_state",
              "terminal_states",
              "allowed_transitions",
              "last_event",
              "source"
            ],
            "properties": {
              "current_state": {
                "type": "string",
                "enum": [
                  "draft",
                  "terms_pending",
                  "sandbox_ready",
                  "live_review_pending",
                  "live_approved",
                  "suspended",
                  "offboarded"
                ]
              },
              "terminal_states": {
                "type": "array",
                "items": {
                  "type": "string",
                  "enum": [
                    "draft",
                    "terms_pending",
                    "sandbox_ready",
                    "live_review_pending",
                    "live_approved",
                    "suspended",
                    "offboarded"
                  ]
                }
              },
              "allowed_transitions": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "from",
                    "to",
                    "requires_evidence",
                    "blocked_by_gate_ids",
                    "human_approval_required",
                    "available"
                  ],
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "from": {
                      "type": "string",
                      "enum": [
                        "draft",
                        "terms_pending",
                        "sandbox_ready",
                        "live_review_pending",
                        "live_approved",
                        "suspended",
                        "offboarded"
                      ]
                    },
                    "to": {
                      "type": "string",
                      "enum": [
                        "draft",
                        "terms_pending",
                        "sandbox_ready",
                        "live_review_pending",
                        "live_approved",
                        "suspended",
                        "offboarded"
                      ]
                    },
                    "requires_evidence": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "blocked_by_gate_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    },
                    "human_approval_required": {
                      "type": "boolean"
                    },
                    "available": {
                      "type": "boolean"
                    }
                  }
                }
              },
              "last_event": {
                "anyOf": [
                  {
                    "type": "object",
                    "required": [
                      "id",
                      "event_type",
                      "from_state",
                      "to_state",
                      "actor_type",
                      "reason_code",
                      "created_at"
                    ],
                    "properties": {
                      "id": {
                        "type": "string",
                        "format": "uuid"
                      },
                      "event_type": {
                        "type": "string"
                      },
                      "from_state": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "to_state": {
                        "type": "string"
                      },
                      "actor_type": {
                        "type": "string"
                      },
                      "reason_code": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "created_at": {
                        "type": "string",
                        "format": "date-time"
                      }
                    }
                  },
                  {
                    "type": "null"
                  }
                ]
              },
              "source": {
                "type": "string",
                "enum": [
                  "platform.onboarding_applications",
                  "computed_fallback"
                ]
              }
            }
          },
          "evidence": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "label",
                "status",
                "owner",
                "source",
                "required_for",
                "blocks_actions"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "complete",
                    "missing",
                    "blocked",
                    "manual_review",
                    "expired",
                    "revoked"
                  ]
                },
                "owner": {
                  "type": "string"
                },
                "source": {
                  "type": "string"
                },
                "required_for": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "blocks_actions": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "missing_gates": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "label",
                "status",
                "owner",
                "source",
                "required_for",
                "blocks_actions"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "complete",
                    "missing",
                    "blocked",
                    "manual_review",
                    "expired",
                    "revoked"
                  ]
                },
                "owner": {
                  "type": "string"
                },
                "source": {
                  "type": "string"
                },
                "required_for": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "blocks_actions": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "allowed_actions": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "label",
                "kind",
                "href",
                "sensitivity",
                "idempotency_required",
                "confirmation_required",
                "human_approval_required"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "kind": {
                  "type": "string",
                  "enum": [
                    "read",
                    "write",
                    "external_handoff"
                  ]
                },
                "href": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "sensitivity": {
                  "type": "string",
                  "enum": [
                    "public",
                    "partner",
                    "confidential",
                    "regulated"
                  ]
                },
                "idempotency_required": {
                  "type": "boolean"
                },
                "confirmation_required": {
                  "type": "boolean"
                },
                "human_approval_required": {
                  "type": "boolean"
                }
              }
            }
          },
          "blocked_actions": {
            "type": "array",
            "items": {
              "allOf": [
                {
                  "type": "object",
                  "required": [
                    "id",
                    "label",
                    "kind",
                    "href",
                    "sensitivity",
                    "idempotency_required",
                    "confirmation_required",
                    "human_approval_required"
                  ],
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "label": {
                      "type": "string"
                    },
                    "kind": {
                      "type": "string",
                      "enum": [
                        "read",
                        "write",
                        "external_handoff"
                      ]
                    },
                    "href": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "sensitivity": {
                      "type": "string",
                      "enum": [
                        "public",
                        "partner",
                        "confidential",
                        "regulated"
                      ]
                    },
                    "idempotency_required": {
                      "type": "boolean"
                    },
                    "confirmation_required": {
                      "type": "boolean"
                    },
                    "human_approval_required": {
                      "type": "boolean"
                    }
                  }
                },
                {
                  "type": "object",
                  "required": [
                    "reason",
                    "missing_gate_ids"
                  ],
                  "properties": {
                    "reason": {
                      "type": "string"
                    },
                    "missing_gate_ids": {
                      "type": "array",
                      "items": {
                        "type": "string"
                      }
                    }
                  }
                }
              ]
            }
          },
          "fallbacks": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "label",
                "trigger",
                "support_path"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "trigger": {
                  "type": "string"
                },
                "support_path": {
                  "type": "string"
                }
              }
            }
          },
          "status_components": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "label",
                "readiness",
                "truth_source",
                "partner_visible",
                "partner_status_visibility",
                "public_status_component_id",
                "status_page_url",
                "covered_surfaces",
                "evidence_sources",
                "public_status_blockers"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "label": {
                  "type": "string"
                },
                "readiness": {
                  "type": "string"
                },
                "truth_source": {
                  "type": "string"
                },
                "partner_visible": {
                  "type": "boolean"
                },
                "partner_status_visibility": {
                  "type": "string",
                  "enum": [
                    "authenticated_partner_readiness",
                    "private_truth_only",
                    "public_status_deferred"
                  ]
                },
                "public_status_component_id": {
                  "type": "string",
                  "enum": [
                    "partner_platform_api"
                  ]
                },
                "status_page_url": {
                  "type": "string",
                  "format": "uri"
                },
                "covered_surfaces": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "evidence_sources": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "public_status_blockers": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                }
              }
            }
          },
          "support": {
            "type": "object",
            "required": [
              "mode",
              "contact",
              "case_types"
            ],
            "properties": {
              "mode": {
                "type": "string",
                "enum": [
                  "pilot_email"
                ]
              },
              "contact": {
                "type": "string",
                "enum": [
                  "support@homejourney.sg"
                ]
              },
              "case_types": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              }
            }
          },
          "ai_agent_policy": {
            "type": "object",
            "required": [
              "default_authority",
              "mutating_actions_require_human_approval",
              "allowed_action_ids",
              "blocked_action_ids",
              "tool_contract"
            ],
            "properties": {
              "default_authority": {
                "type": "string",
                "enum": [
                  "read_and_draft_only"
                ]
              },
              "mutating_actions_require_human_approval": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "allowed_action_ids": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "blocked_action_ids": {
                "type": "array",
                "items": {
                  "type": "string"
                }
              },
              "tool_contract": {
                "type": "string"
              }
            }
          },
          "consent_evidence": {
            "$ref": "#/components/schemas/PlatformConsentEvidence"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformConsentEvidence": {
        "type": "object",
        "required": [
          "grants",
          "purposes",
          "scopes",
          "data_categories",
          "retention",
          "revocation",
          "audit"
        ],
        "properties": {
          "grants": {
            "type": "object",
            "required": [
              "total",
              "active",
              "revoked",
              "superseded",
              "suspended",
              "expired"
            ],
            "properties": {
              "total": {
                "type": "integer"
              },
              "active": {
                "type": "integer"
              },
              "revoked": {
                "type": "integer"
              },
              "superseded": {
                "type": "integer"
              },
              "suspended": {
                "type": "integer"
              },
              "expired": {
                "type": "integer"
              }
            }
          },
          "purposes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "scopes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "data_categories": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "retention": {
            "type": "object",
            "required": [
              "earliest_until",
              "latest_until"
            ],
            "properties": {
              "earliest_until": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "latest_until": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              }
            }
          },
          "revocation": {
            "type": "object",
            "required": [
              "revoked_count",
              "latest_revoked_at"
            ],
            "properties": {
              "revoked_count": {
                "type": "integer"
              },
              "latest_revoked_at": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              }
            }
          },
          "audit": {
            "type": "object",
            "required": [
              "recorded_event_count"
            ],
            "properties": {
              "recorded_event_count": {
                "type": "integer"
              }
            }
          }
        }
      },
      "PlatformProductRestRoute": {
        "type": "object",
        "required": [
          "method",
          "path",
          "operation_id",
          "availability"
        ],
        "properties": {
          "method": {
            "type": "string",
            "enum": [
              "GET",
              "POST",
              "PUT",
              "PATCH",
              "DELETE"
            ]
          },
          "path": {
            "type": "string"
          },
          "operation_id": {
            "type": "string"
          },
          "availability": {
            "type": "string",
            "enum": [
              "available_sandbox",
              "available_live",
              "read_only_sandbox",
              "pilot_only",
              "internal_only",
              "deferred"
            ]
          }
        }
      },
      "PlatformProductRequiredEvidence": {
        "type": "object",
        "required": [
          "id",
          "label",
          "owner",
          "required_for"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "label": {
            "type": "string"
          },
          "owner": {
            "type": "string"
          },
          "required_for": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PlatformProductAiAgentPolicy": {
        "type": "object",
        "required": [
          "readable",
          "mcp_tool_name",
          "mutating_tools",
          "human_approval_required",
          "data_sensitivity",
          "tool_contract"
        ],
        "properties": {
          "readable": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "mcp_tool_name": {
            "type": [
              "string",
              "null"
            ]
          },
          "mutating_tools": {
            "type": "string",
            "enum": [
              "none",
              "explicit_confirmation",
              "human_approved_only"
            ]
          },
          "human_approval_required": {
            "type": "boolean"
          },
          "data_sensitivity": {
            "type": "string",
            "enum": [
              "public",
              "partner",
              "confidential",
              "regulated"
            ]
          },
          "tool_contract": {
            "type": "string",
            "enum": [
              "REST/OpenAPI only; SDK, CLI, and MCP must not bypass platform API routes"
            ]
          }
        }
      },
      "PlatformProductCatalogEntry": {
        "type": "object",
        "required": [
          "id",
          "display_name",
          "summary",
          "owner_team",
          "target_builders",
          "launch_stage",
          "risk_tier",
          "data_classification",
          "available_environments",
          "required_scopes",
          "commercial_package_ids",
          "support_tier",
          "pricing_posture",
          "rest_routes",
          "webhook_events",
          "status_components",
          "live_gate_ids",
          "required_evidence",
          "ai_agent_policy",
          "docs",
          "blocked_claims"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "summary": {
            "type": "string"
          },
          "owner_team": {
            "type": "string"
          },
          "target_builders": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "service_provider",
                "agent",
                "agency",
                "bank_partner",
                "conveyancing_firm",
                "developer",
                "partner_site_owner",
                "official_source_operator",
                "ai_agent",
                "platform_operator",
                "owner_landlord"
              ]
            }
          },
          "launch_stage": {
            "type": "string",
            "enum": [
              "available_sandbox",
              "available_live",
              "read_only_sandbox",
              "pilot_only",
              "internal_only",
              "deferred"
            ]
          },
          "risk_tier": {
            "type": "string",
            "enum": [
              "low",
              "medium",
              "high",
              "regulated",
              "money_movement"
            ]
          },
          "data_classification": {
            "type": "string",
            "enum": [
              "public",
              "partner",
              "confidential",
              "regulated"
            ]
          },
          "available_environments": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "sandbox",
                "live"
              ]
            }
          },
          "required_scopes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformScope"
            }
          },
          "commercial_package_ids": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "sandbox_developer",
                "pilot_partner_api",
                "production_partner_api",
                "business_directory_advertiser_self_serve",
                "business_directory_advertiser_managed",
                "enterprise_bank_api",
                "internal_first_party"
              ]
            }
          },
          "support_tier": {
            "type": "string",
            "enum": [
              "async",
              "named_owner",
              "production",
              "enterprise",
              "internal"
            ]
          },
          "pricing_posture": {
            "type": "string",
            "enum": [
              "non_billable",
              "observe_only",
              "manual_review",
              "finance_approved_only",
              "deferred"
            ]
          },
          "rest_routes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformProductRestRoute"
            }
          },
          "webhook_events": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "status_components": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "live_gate_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "required_evidence": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformProductRequiredEvidence"
            }
          },
          "ai_agent_policy": {
            "$ref": "#/components/schemas/PlatformProductAiAgentPolicy"
          },
          "docs": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "blocked_claims": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        }
      },
      "PlatformProductCatalogResponse": {
        "type": "object",
        "required": [
          "catalog",
          "organization",
          "products",
          "counts",
          "livemode",
          "request_id"
        ],
        "properties": {
          "catalog": {
            "type": "object",
            "required": [
              "version",
              "source_spec",
              "generated_from",
              "environment"
            ],
            "properties": {
              "version": {
                "type": "string",
                "enum": [
                  "2026.06"
                ]
              },
              "source_spec": {
                "type": "string",
                "enum": [
                  "docs/features/platform/API_PRODUCT_CATALOG_SPEC.md"
                ]
              },
              "generated_from": {
                "type": "string",
                "enum": [
                  "code_config"
                ]
              },
              "environment": {
                "type": "string",
                "enum": [
                  "sandbox",
                  "live"
                ]
              }
            }
          },
          "organization": {
            "type": "object",
            "required": [
              "id",
              "slug",
              "display_name",
              "type"
            ],
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "slug": {
                "type": "string"
              },
              "display_name": {
                "type": "string"
              },
              "type": {
                "type": "string"
              }
            }
          },
          "products": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformProductCatalogEntry"
            }
          },
          "counts": {
            "type": "object",
            "required": [
              "total",
              "available_sandbox",
              "available_live",
              "read_only_sandbox",
              "pilot_only",
              "internal_only",
              "deferred",
              "mcp_visible"
            ],
            "properties": {
              "total": {
                "type": "integer",
                "minimum": 0
              },
              "available_sandbox": {
                "type": "integer",
                "minimum": 0
              },
              "available_live": {
                "type": "integer",
                "minimum": 0
              },
              "read_only_sandbox": {
                "type": "integer",
                "minimum": 0
              },
              "pilot_only": {
                "type": "integer",
                "minimum": 0
              },
              "internal_only": {
                "type": "integer",
                "minimum": 0
              },
              "deferred": {
                "type": "integer",
                "minimum": 0
              },
              "mcp_visible": {
                "type": "integer",
                "minimum": 0
              }
            }
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformPortalListingViewingPreparedAction": {
        "type": "object",
        "required": [
          "action_id",
          "status",
          "required_scope",
          "required_confirmation",
          "idempotency_required",
          "expires_at",
          "side_effects",
          "source_attribution",
          "consent_boundary",
          "safety",
          "continuation",
          "principal"
        ],
        "properties": {
          "action_id": {
            "type": "string",
            "maxLength": 192
          },
          "status": {
            "type": "string",
            "enum": [
              "prepared"
            ]
          },
          "required_scope": {
            "type": "string",
            "enum": [
              "viewings.write"
            ]
          },
          "required_confirmation": {
            "type": "string",
            "enum": [
              "first_party_app"
            ]
          },
          "idempotency_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "expires_at": {
            "type": "string",
            "format": "date-time"
          },
          "side_effects": {
            "type": "object",
            "required": [
              "prepared_action_created",
              "action_prepared_event_created",
              "canonical_listing_mutated",
              "public_projection_mutated",
              "contact_delivered",
              "external_delivery_performed"
            ],
            "properties": {
              "prepared_action_created": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "action_prepared_event_created": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "canonical_listing_mutated": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "public_projection_mutated": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "contact_delivered": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "external_delivery_performed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "source_attribution": {
            "type": "object",
            "required": [
              "listing_id",
              "source",
              "source_projection"
            ],
            "properties": {
              "listing_id": {
                "type": "string",
                "maxLength": 128
              },
              "source": {
                "type": "string",
                "enum": [
                  "platform_api"
                ]
              },
              "source_projection": {
                "type": "string",
                "enum": [
                  "sandbox_public_safe_listing"
                ]
              }
            }
          },
          "consent_boundary": {
            "type": "object",
            "required": [
              "consent_text_version",
              "consent_to_contact",
              "contact_data_included",
              "message_included"
            ],
            "properties": {
              "consent_text_version": {
                "type": "string",
                "enum": [
                  "platform-viewing-consent-v1"
                ]
              },
              "consent_to_contact": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "contact_data_included": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "message_included": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "safety": {
            "type": "object",
            "required": [
              "delegated",
              "api_confirmation_allowed",
              "api_rejection_allowed"
            ],
            "properties": {
              "delegated": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "api_confirmation_allowed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "api_rejection_allowed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "continuation": {
            "type": "object",
            "required": [
              "url",
              "handoff_required",
              "reason"
            ],
            "properties": {
              "url": {
                "type": "string",
                "format": "uri"
              },
              "handoff_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "reason": {
                "type": "string",
                "enum": [
                  "first_party_confirmation_required"
                ]
              }
            }
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          }
        }
      },
      "ViewingRequestResponse": {
        "type": "object",
        "required": [
          "viewing_request",
          "livemode",
          "idempotency_key_hash",
          "request_id"
        ],
        "properties": {
          "viewing_request": {
            "type": "object",
            "required": [
              "id",
              "listing_id",
              "status",
              "environment",
              "submitted_at"
            ],
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "listing_id": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "enum": [
                  "pending"
                ]
              },
              "environment": {
                "type": "string",
                "enum": [
                  "sandbox",
                  "live"
                ]
              },
              "submitted_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "livemode": {
            "type": "boolean"
          },
          "idempotency_key_hash": {
            "type": "string"
          },
          "request_id": {
            "type": "string"
          },
          "prepared_action": {
            "$ref": "#/components/schemas/PlatformPortalListingViewingPreparedAction"
          }
        }
      },
      "ViewingRequestStatusResponse": {
        "type": "object",
        "required": [
          "viewing_request",
          "livemode",
          "request_id"
        ],
        "properties": {
          "viewing_request": {
            "type": "object",
            "required": [
              "id",
              "listing_id",
              "status",
              "environment",
              "submitted_at",
              "updated_at"
            ],
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "listing_id": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "enum": [
                  "pending",
                  "accepted",
                  "declined",
                  "cancelled",
                  "completed",
                  "no_show",
                  "expired"
                ]
              },
              "environment": {
                "type": "string",
                "enum": [
                  "sandbox",
                  "live"
                ]
              },
              "submitted_at": {
                "type": "string",
                "format": "date-time"
              },
              "updated_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "ProviderAiActionRequest": {
        "type": "object",
        "required": [
          "action"
        ],
        "additionalProperties": true,
        "properties": {
          "action": {
            "type": "string",
            "enum": [
              "prepare_reply",
              "confirm_reply",
              "prepare_website_draft",
              "apply_website_draft",
              "revoke_connection",
              "create_booking_request"
            ]
          },
          "target_id": {
            "type": "string",
            "maxLength": 160
          },
          "instruction": {
            "type": "string",
            "maxLength": 1000
          },
          "message": {
            "type": "string",
            "maxLength": 2000
          },
          "draft_config": {
            "type": "object",
            "additionalProperties": true
          },
          "connection_id": {
            "type": "string",
            "maxLength": 160
          },
          "provider_grant_status": {
            "type": "string",
            "enum": [
              "active",
              "revoked"
            ]
          },
          "confirm_reply": {
            "type": "boolean",
            "const": true
          },
          "confirm_apply": {
            "type": "boolean",
            "const": true
          },
          "confirm_revoke": {
            "type": "boolean",
            "const": true
          },
          "confirm_create": {
            "type": "boolean",
            "const": true
          },
          "reject_action": {
            "type": "boolean",
            "const": true
          },
          "rejection_reason": {
            "type": "string",
            "maxLength": 400
          }
        }
      },
      "ProviderAiActionResponse": {
        "type": "object",
        "required": [
          "ok",
          "action",
          "action_id",
          "status",
          "required_scope",
          "required_confirmation",
          "idempotency_required",
          "provider",
          "side_effects",
          "continuation",
          "safety",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "ok": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "action": {
            "type": "string",
            "enum": [
              "prepare_reply",
              "confirm_reply",
              "prepare_website_draft",
              "apply_website_draft",
              "revoke_connection",
              "create_booking_request"
            ]
          },
          "action_id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "prepared",
              "requires_confirmation",
              "confirmed",
              "rejected"
            ]
          },
          "required_scope": {
            "$ref": "#/components/schemas/PlatformScope"
          },
          "required_confirmation": {
            "type": "string",
            "nullable": true
          },
          "idempotency_required": {
            "type": "boolean"
          },
          "provider": {
            "type": "object",
            "required": [
              "id",
              "environment"
            ],
            "properties": {
              "id": {
                "type": "string",
                "enum": [
                  "sandbox-provider-cleaning"
                ]
              },
              "environment": {
                "type": "string",
                "enum": [
                  "sandbox"
                ]
              }
            }
          },
          "side_effects": {
            "$ref": "#/components/schemas/ProviderAiActionSideEffects"
          },
          "continuation": {
            "$ref": "#/components/schemas/ProviderAiActionContinuation"
          },
          "safety": {
            "$ref": "#/components/schemas/ProviderAiActionSafety"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "ProviderAiActionSideEffects": {
        "type": "object",
        "required": [
          "route_backed_audit",
          "direct_external_system_calls",
          "customer_visible_write",
          "provider_workspace_review_created",
          "website_draft_applied",
          "published",
          "appointment_confirmed",
          "booking_request_created",
          "connection_revoked"
        ],
        "properties": {
          "route_backed_audit": {
            "type": "boolean"
          },
          "direct_external_system_calls": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "customer_visible_write": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "provider_workspace_review_created": {
            "type": "boolean"
          },
          "website_draft_applied": {
            "type": "boolean"
          },
          "published": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "appointment_confirmed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "booking_request_created": {
            "type": "boolean"
          },
          "connection_revoked": {
            "type": "boolean"
          }
        }
      },
      "ProviderAiActionContinuation": {
        "type": "object",
        "required": [
          "url",
          "handoff_required",
          "reason"
        ],
        "properties": {
          "url": {
            "type": "string",
            "format": "uri"
          },
          "handoff_required": {
            "type": "boolean"
          },
          "reason": {
            "type": "string",
            "nullable": true
          }
        }
      },
      "ProviderAiActionSafety": {
        "type": "object",
        "required": [
          "stale_external_scheduler_blocks_confirmation",
          "external_system_certified",
          "provider_grant_status",
          "confirmation_recorded"
        ],
        "properties": {
          "stale_external_scheduler_blocks_confirmation": {
            "type": "boolean"
          },
          "external_system_certified": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "provider_grant_status": {
            "type": "string",
            "enum": [
              "active"
            ]
          },
          "confirmation_recorded": {
            "type": "boolean"
          }
        }
      },
      "ProviderExternalSyncHealthResponse": {
        "type": "object",
        "required": [
          "ok",
          "provider_id",
          "sync_health",
          "public_safety",
          "livemode",
          "request_id"
        ],
        "properties": {
          "ok": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "provider_id": {
            "type": "string",
            "enum": [
              "sandbox-provider-cleaning"
            ]
          },
          "sync_health": {
            "type": "object",
            "required": [
              "scheduler",
              "crm"
            ],
            "properties": {
              "scheduler": {
                "$ref": "#/components/schemas/ProviderExternalSyncPolicy"
              },
              "crm": {
                "$ref": "#/components/schemas/ProviderExternalSyncPolicy"
              }
            }
          },
          "public_safety": {
            "type": "object",
            "required": [
              "stale_external_slot_confirmed",
              "direct_external_system_calls",
              "revocation_blocks_future_reads"
            ],
            "properties": {
              "stale_external_slot_confirmed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "direct_external_system_calls": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "revocation_blocks_future_reads": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "ProviderExternalSyncPolicy": {
        "type": "object",
        "required": [
          "connection_id",
          "freshness_status",
          "certification_status",
          "source_mode",
          "source_authority",
          "customer_promise",
          "conflict_policy",
          "public_projection_blocked",
          "conflict_created",
          "revocation_fanout_required"
        ],
        "properties": {
          "connection_id": {
            "type": "string"
          },
          "freshness_status": {
            "type": "string",
            "enum": [
              "fresh",
              "stale"
            ]
          },
          "certification_status": {
            "type": "string",
            "enum": [
              "certified",
              "review_required"
            ]
          },
          "source_mode": {
            "type": "string",
            "enum": [
              "external_write_certified",
              "request_handoff"
            ]
          },
          "source_authority": {
            "type": "string",
            "enum": [
              "homejourney",
              "external_certified",
              "request_handoff"
            ]
          },
          "customer_promise": {
            "type": "string",
            "enum": [
              "confirmed_allowed",
              "request_handoff"
            ]
          },
          "conflict_policy": {
            "type": "string",
            "enum": [
              "none",
              "review_required",
              "blocks_public_projection"
            ]
          },
          "public_projection_blocked": {
            "type": "boolean"
          },
          "conflict_created": {
            "type": "boolean"
          },
          "revocation_fanout_required": {
            "type": "boolean"
          }
        }
      },
      "ProviderAiGraphResponse": {
        "type": "object",
        "required": [
          "graph",
          "authorization",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "graph": {
            "type": "object",
            "required": [
              "provider",
              "capabilities",
              "catalog",
              "website",
              "leads",
              "bookings",
              "integrations",
              "freshness",
              "public_safety"
            ],
            "description": "Sandbox provider AI workspace graph. It returns IDs, statuses, summaries, continuation URLs, and freshness only; it does not return customer PII, raw messages, provider tokens, booking write controls, or direct provider-system call handles.",
            "properties": {
              "provider": {
                "type": "object",
                "required": [
                  "id",
                  "display_name",
                  "status",
                  "service_categories",
                  "continuation_url"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "display_name": {
                    "type": "string"
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "active"
                    ]
                  },
                  "service_categories": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "continuation_url": {
                    "type": "string",
                    "format": "uri"
                  }
                }
              },
              "capabilities": {
                "type": "object",
                "required": [
                  "website_builder",
                  "booking_scheduler",
                  "lead_triage",
                  "integration_health"
                ],
                "properties": {
                  "website_builder": {
                    "type": "string",
                    "enum": [
                      "available_sandbox"
                    ]
                  },
                  "booking_scheduler": {
                    "type": "string",
                    "enum": [
                      "available_sandbox"
                    ]
                  },
                  "lead_triage": {
                    "type": "string",
                    "enum": [
                      "available_sandbox"
                    ]
                  },
                  "integration_health": {
                    "type": "string",
                    "enum": [
                      "read_only_sandbox"
                    ]
                  }
                }
              },
              "catalog": {
                "type": "object",
                "required": [
                  "summary",
                  "services"
                ],
                "properties": {
                  "summary": {
                    "$ref": "#/components/schemas/ProviderAiGraphSummary"
                  },
                  "services": {
                    "type": "array",
                    "items": {
                      "$ref": "#/components/schemas/ProviderAiGraphService"
                    }
                  }
                }
              },
              "website": {
                "type": "object",
                "required": [
                  "slug",
                  "publication_status",
                  "canonical_url",
                  "last_published_at",
                  "continuation_url"
                ],
                "properties": {
                  "slug": {
                    "type": "string"
                  },
                  "publication_status": {
                    "type": "string",
                    "enum": [
                      "published"
                    ]
                  },
                  "canonical_url": {
                    "type": "string",
                    "format": "uri"
                  },
                  "last_published_at": {
                    "type": "string",
                    "format": "date-time"
                  },
                  "continuation_url": {
                    "type": "string",
                    "format": "uri"
                  }
                }
              },
              "leads": {
                "$ref": "#/components/schemas/ProviderAiGraphLeads"
              },
              "bookings": {
                "$ref": "#/components/schemas/ProviderAiGraphBookings"
              },
              "integrations": {
                "$ref": "#/components/schemas/ProviderAiGraphIntegrations"
              },
              "freshness": {
                "$ref": "#/components/schemas/ProviderAiGraphFreshness"
              },
              "public_safety": {
                "$ref": "#/components/schemas/ProviderAiGraphPublicSafety"
              }
            }
          },
          "authorization": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "api_key_id",
              "granted_provider_ai_scopes",
              "actor_model",
              "live_data_access",
              "private_customer_data",
              "sandbox_side_effects"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "api_key_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_provider_ai_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "actor_model": {
                "type": "string",
                "enum": [
                  "api_key_automation_client"
                ]
              },
              "live_data_access": {
                "type": "string",
                "enum": [
                  "blocked_until_provider_ai_grant"
                ]
              },
              "private_customer_data": {
                "type": "string",
                "enum": [
                  "requires_provider_install_grant"
                ]
              },
              "sandbox_side_effects": {
                "type": "string",
                "enum": [
                  "blocked"
                ]
              }
            }
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "ProviderAiGraphSummary": {
        "type": "object",
        "required": [
          "service_count",
          "bookable_service_count",
          "draft_service_count",
          "last_catalog_update_at"
        ],
        "properties": {
          "service_count": {
            "type": "integer",
            "minimum": 0
          },
          "bookable_service_count": {
            "type": "integer",
            "minimum": 0
          },
          "draft_service_count": {
            "type": "integer",
            "minimum": 0
          },
          "last_catalog_update_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "ProviderAiGraphService": {
        "type": "object",
        "required": [
          "id",
          "name",
          "status",
          "booking_mode",
          "price_summary",
          "continuation_url"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "published",
              "draft"
            ]
          },
          "booking_mode": {
            "type": "string",
            "enum": [
              "request_to_book",
              "instant",
              "quote_required"
            ]
          },
          "price_summary": {
            "type": "string"
          },
          "continuation_url": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "ProviderAiGraphLeads": {
        "type": "object",
        "required": [
          "summary",
          "recent"
        ],
        "properties": {
          "summary": {
            "type": "object",
            "required": [
              "open_count",
              "needs_reply_count",
              "high_urgency_count",
              "last_lead_at"
            ],
            "properties": {
              "open_count": {
                "type": "integer",
                "minimum": 0
              },
              "needs_reply_count": {
                "type": "integer",
                "minimum": 0
              },
              "high_urgency_count": {
                "type": "integer",
                "minimum": 0
              },
              "last_lead_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "recent": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProviderAiGraphLead"
            }
          }
        }
      },
      "ProviderAiGraphLead": {
        "type": "object",
        "required": [
          "id",
          "status",
          "urgency",
          "source_channel",
          "summary",
          "suggested_next_step",
          "continuation_url"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "needs_reply",
              "qualified"
            ]
          },
          "urgency": {
            "type": "string",
            "enum": [
              "high",
              "medium",
              "low"
            ]
          },
          "source_channel": {
            "type": "string",
            "enum": [
              "provider_site",
              "mobile_app"
            ]
          },
          "summary": {
            "type": "string"
          },
          "suggested_next_step": {
            "type": "string"
          },
          "continuation_url": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "ProviderAiGraphBookings": {
        "type": "object",
        "required": [
          "summary",
          "upcoming"
        ],
        "properties": {
          "summary": {
            "type": "object",
            "required": [
              "upcoming_count",
              "pending_confirmation_count",
              "stale_external_slots_count",
              "next_booking_at"
            ],
            "properties": {
              "upcoming_count": {
                "type": "integer",
                "minimum": 0
              },
              "pending_confirmation_count": {
                "type": "integer",
                "minimum": 0
              },
              "stale_external_slots_count": {
                "type": "integer",
                "minimum": 0
              },
              "next_booking_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "upcoming": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProviderAiGraphBooking"
            }
          }
        }
      },
      "ProviderAiGraphBooking": {
        "type": "object",
        "required": [
          "id",
          "service_id",
          "status",
          "scheduled_window",
          "continuation_url"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "service_id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "confirmed",
              "pending_confirmation"
            ]
          },
          "scheduled_window": {
            "type": "object",
            "required": [
              "date",
              "starts_at",
              "ends_at",
              "timezone"
            ],
            "properties": {
              "date": {
                "type": "string",
                "format": "date"
              },
              "starts_at": {
                "type": "string"
              },
              "ends_at": {
                "type": "string"
              },
              "timezone": {
                "type": "string",
                "enum": [
                  "Asia/Singapore"
                ]
              }
            }
          },
          "continuation_url": {
            "type": "string",
            "format": "uri"
          }
        }
      },
      "ProviderAiGraphIntegrations": {
        "type": "object",
        "required": [
          "summary",
          "connections"
        ],
        "properties": {
          "summary": {
            "type": "object",
            "required": [
              "connected_count",
              "degraded_count",
              "last_health_check_at"
            ],
            "properties": {
              "connected_count": {
                "type": "integer",
                "minimum": 0
              },
              "degraded_count": {
                "type": "integer",
                "minimum": 0
              },
              "last_health_check_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "connections": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProviderAiGraphIntegration"
            }
          }
        }
      },
      "ProviderAiGraphIntegration": {
        "type": "object",
        "required": [
          "id",
          "kind",
          "provider",
          "status",
          "health",
          "granted_scopes",
          "freshness"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "kind": {
            "type": "string",
            "enum": [
              "calendar",
              "scheduler"
            ]
          },
          "provider": {
            "type": "string",
            "enum": [
              "google_calendar",
              "external_scheduler"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "connected"
            ]
          },
          "health": {
            "type": "string",
            "enum": [
              "healthy",
              "degraded"
            ]
          },
          "granted_scopes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformScope"
            }
          },
          "freshness": {
            "type": "object",
            "required": [
              "last_seen_at",
              "next_check_at"
            ],
            "properties": {
              "last_seen_at": {
                "type": "string",
                "format": "date-time"
              },
              "next_check_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          }
        }
      },
      "ProviderAiGraphFreshness": {
        "type": "object",
        "required": [
          "graph_generated_at",
          "source_watermarks"
        ],
        "properties": {
          "graph_generated_at": {
            "type": "string",
            "format": "date-time"
          },
          "source_watermarks": {
            "type": "object",
            "required": [
              "catalog",
              "website",
              "leads",
              "bookings",
              "integrations"
            ],
            "properties": {
              "catalog": {
                "type": "string",
                "format": "date-time"
              },
              "website": {
                "type": "string",
                "format": "date-time"
              },
              "leads": {
                "type": "string",
                "format": "date-time"
              },
              "bookings": {
                "type": "string",
                "format": "date-time"
              },
              "integrations": {
                "type": "string",
                "format": "date-time"
              }
            }
          }
        }
      },
      "ProviderAiGraphPublicSafety": {
        "type": "object",
        "required": [
          "customer_pii_returned",
          "raw_messages_returned",
          "external_provider_tokens_returned",
          "booking_write_controls_returned",
          "direct_provider_system_calls"
        ],
        "properties": {
          "customer_pii_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_messages_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "external_provider_tokens_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "booking_write_controls_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "direct_provider_system_calls": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "ProviderIntegrationsDirectoryResponse": {
        "type": "object",
        "required": [
          "modules",
          "summary",
          "authorization",
          "public_safety",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "modules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProviderIntegrationModule"
            }
          },
          "summary": {
            "$ref": "#/components/schemas/ProviderIntegrationsSummary"
          },
          "authorization": {
            "$ref": "#/components/schemas/ProviderIntegrationsAuthorization"
          },
          "public_safety": {
            "$ref": "#/components/schemas/ProviderIntegrationsPublicSafety"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "ProviderIntegrationModule": {
        "type": "object",
        "required": [
          "module_id",
          "label",
          "workspace_root",
          "directory_categories",
          "source_mode_default",
          "sync_layer_blocked_until",
          "install_api_prerequisites_satisfied",
          "install_api_runtime_boundary",
          "apps"
        ],
        "properties": {
          "module_id": {
            "type": "string",
            "enum": [
              "agent",
              "agency",
              "business",
              "mortgage",
              "legal",
              "developer",
              "renovation"
            ]
          },
          "label": {
            "type": "string"
          },
          "workspace_root": {
            "type": "string"
          },
          "directory_categories": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "source_mode_default": {
            "type": "string",
            "enum": [
              "homejourney_source_of_truth"
            ]
          },
          "sync_layer_blocked_until": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "install_api_prerequisites_satisfied": {
            "type": "boolean"
          },
          "install_api_runtime_boundary": {
            "type": "string",
            "enum": [
              "runtime_app_install_routes_deferred_until_prerequisites_pass"
            ]
          },
          "apps": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProviderIntegrationApp"
            }
          }
        }
      },
      "ProviderIntegrationApp": {
        "type": "object",
        "required": [
          "app_id",
          "owner",
          "verticals",
          "categories",
          "required_scopes",
          "data_categories",
          "credential_type",
          "credential_posture",
          "webhook_event_count",
          "webhook_endpoint_posture",
          "sync_mode",
          "certification_status",
          "install_eligibility",
          "contract_lifecycle_state",
          "sync_health",
          "adapter_posture",
          "cli_support_posture",
          "mcp_support_posture",
          "last_sync_at",
          "last_error_at",
          "action_availability",
          "revoke_action",
          "support_owner"
        ],
        "properties": {
          "app_id": {
            "type": "string"
          },
          "owner": {
            "type": "string"
          },
          "verticals": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "agent",
                "agency",
                "business",
                "mortgage",
                "legal",
                "developer",
                "renovation"
              ]
            }
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "required_scopes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformScope"
            }
          },
          "data_categories": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "credential_type": {
            "type": "string",
            "enum": [
              "none",
              "oauth",
              "api_key_digest",
              "webhook_secret_digest",
              "managed_service_account"
            ]
          },
          "credential_posture": {
            "type": "string",
            "enum": [
              "redacted_api_key_digest_visible",
              "webhook_secret_digest_visible",
              "oauth_or_service_account_visible",
              "not_required"
            ]
          },
          "webhook_event_count": {
            "type": "integer",
            "minimum": 0
          },
          "webhook_endpoint_posture": {
            "type": "string",
            "enum": [
              "sandbox_webhook_endpoint_visible",
              "webhook_endpoint_not_required"
            ]
          },
          "sync_mode": {
            "type": "string",
            "enum": [
              "read_only",
              "write_with_confirmation",
              "webhook",
              "batch_import",
              "manual_export"
            ]
          },
          "certification_status": {
            "type": "string",
            "enum": [
              "deferred",
              "sandbox_certified",
              "live_review",
              "live_certified",
              "revoked"
            ]
          },
          "install_eligibility": {
            "type": "string",
            "enum": [
              "public_catalog",
              "invite_only",
              "operator_review",
              "unsupported"
            ]
          },
          "contract_lifecycle_state": {
            "type": "string",
            "enum": [
              "sandbox_installed",
              "live_review",
              "deferred"
            ]
          },
          "sync_health": {
            "type": "string",
            "enum": [
              "healthy",
              "review_required",
              "deferred"
            ]
          },
          "adapter_posture": {
            "type": "string",
            "enum": [
              "local_gate_ready_pending_release",
              "deferred_adapter_state_visible",
              "unsupported_adapter_state_visible"
            ]
          },
          "cli_support_posture": {
            "type": "string",
            "enum": [
              "local_gate_ready_pending_release"
            ]
          },
          "mcp_support_posture": {
            "type": "string",
            "enum": [
              "local_gate_ready_pending_release"
            ]
          },
          "last_sync_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "last_error_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "action_availability": {
            "$ref": "#/components/schemas/ProviderIntegrationActionAvailability"
          },
          "revoke_action": {
            "type": "string",
            "enum": [
              "fanout_api_key_webhook_mcp_and_connected_app_grants"
            ]
          },
          "support_owner": {
            "type": "string"
          }
        },
        "description": "Connected-app directory metadata only. It never contains raw credentials, OAuth tokens, webhook secrets, raw sync payloads, customer PII, or direct external-system call handles."
      },
      "ProviderIntegrationActionAvailability": {
        "type": "object",
        "required": [
          "install",
          "pause",
          "resume",
          "revoke"
        ],
        "properties": {
          "install": {
            "type": "string",
            "enum": [
              "deferred_until_install_route"
            ]
          },
          "pause": {
            "type": "string",
            "enum": [
              "deferred_until_mutation_route"
            ]
          },
          "resume": {
            "type": "string",
            "enum": [
              "deferred_until_mutation_route"
            ]
          },
          "revoke": {
            "type": "string",
            "enum": [
              "deferred_until_mutation_route"
            ]
          }
        }
      },
      "ProviderIntegrationsSummary": {
        "type": "object",
        "required": [
          "total_modules",
          "total_app_surfaces",
          "unique_apps",
          "sandbox_certified_surfaces",
          "live_review_surfaces",
          "deferred_surfaces",
          "install_mutations",
          "source_contract"
        ],
        "properties": {
          "total_modules": {
            "type": "integer",
            "minimum": 0
          },
          "total_app_surfaces": {
            "type": "integer",
            "minimum": 0
          },
          "unique_apps": {
            "type": "integer",
            "minimum": 0
          },
          "sandbox_certified_surfaces": {
            "type": "integer",
            "minimum": 0
          },
          "live_review_surfaces": {
            "type": "integer",
            "minimum": 0
          },
          "deferred_surfaces": {
            "type": "integer",
            "minimum": 0
          },
          "install_mutations": {
            "type": "string",
            "enum": [
              "deferred_until_install_routes"
            ]
          },
          "source_contract": {
            "type": "string",
            "enum": [
              "vertical_apps_integration_surface"
            ]
          }
        }
      },
      "ProviderIntegrationsAuthorization": {
        "type": "object",
        "required": [
          "organization_id",
          "client_id",
          "api_key_id",
          "required_scope",
          "granted_provider_scopes",
          "actor_model",
          "data_access",
          "mutation_access"
        ],
        "properties": {
          "organization_id": {
            "type": "string",
            "format": "uuid"
          },
          "client_id": {
            "type": "string",
            "format": "uuid"
          },
          "api_key_id": {
            "type": "string",
            "format": "uuid"
          },
          "required_scope": {
            "type": "string",
            "enum": [
              "provider_workspace.read"
            ]
          },
          "granted_provider_scopes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformScope"
            }
          },
          "actor_model": {
            "type": "string",
            "enum": [
              "api_key_automation_client"
            ]
          },
          "data_access": {
            "type": "string",
            "enum": [
              "contract_metadata_only"
            ]
          },
          "mutation_access": {
            "type": "string",
            "enum": [
              "install_pause_resume_revoke_deferred"
            ]
          }
        }
      },
      "ProviderIntegrationsPublicSafety": {
        "type": "object",
        "required": [
          "raw_credentials_returned",
          "oauth_tokens_returned",
          "webhook_secrets_returned",
          "customer_pii_returned",
          "raw_sync_payloads_returned",
          "direct_external_system_calls",
          "install_or_revocation_mutations_enabled"
        ],
        "properties": {
          "raw_credentials_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "oauth_tokens_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "webhook_secrets_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "customer_pii_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_sync_payloads_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "direct_external_system_calls": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "install_or_revocation_mutations_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "ProviderIntegrationGateResponse": {
        "type": "object",
        "required": [
          "app",
          "modules",
          "gate",
          "consent",
          "revocation",
          "authorization",
          "public_safety",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "app": {
            "$ref": "#/components/schemas/ProviderIntegrationGateApp"
          },
          "modules": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ProviderIntegrationGateModule"
            }
          },
          "gate": {
            "$ref": "#/components/schemas/ProviderIntegrationGateDecision"
          },
          "consent": {
            "$ref": "#/components/schemas/ProviderIntegrationGateConsent"
          },
          "revocation": {
            "$ref": "#/components/schemas/ProviderIntegrationGateRevocation"
          },
          "authorization": {
            "$ref": "#/components/schemas/ProviderIntegrationGateAuthorization"
          },
          "public_safety": {
            "$ref": "#/components/schemas/ProviderIntegrationGatePublicSafety"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        },
        "description": "Read-only install-consent or revocation gate state. The gate response is fail-closed and never performs connected-app install, pause, resume, revoke, credential, OAuth, provider, or fan-out side effects."
      },
      "ProviderIntegrationGateApp": {
        "type": "object",
        "required": [
          "app_id",
          "owner",
          "verticals",
          "categories",
          "required_scopes",
          "data_categories",
          "credential_type",
          "sync_mode",
          "certification_status",
          "install_eligibility",
          "revocation_behavior",
          "support_owner"
        ],
        "properties": {
          "app_id": {
            "type": "string"
          },
          "owner": {
            "type": "string"
          },
          "verticals": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "agent",
                "agency",
                "business",
                "mortgage",
                "legal",
                "developer",
                "renovation"
              ]
            }
          },
          "categories": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "required_scopes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformScope"
            }
          },
          "data_categories": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "credential_type": {
            "type": "string",
            "enum": [
              "none",
              "oauth",
              "api_key_digest",
              "webhook_secret_digest",
              "managed_service_account"
            ]
          },
          "sync_mode": {
            "type": "string",
            "enum": [
              "read_only",
              "write_with_confirmation",
              "webhook",
              "batch_import",
              "manual_export"
            ]
          },
          "certification_status": {
            "type": "string",
            "enum": [
              "deferred",
              "sandbox_certified",
              "live_review",
              "live_certified",
              "revoked"
            ]
          },
          "install_eligibility": {
            "type": "string",
            "enum": [
              "public_catalog",
              "invite_only",
              "operator_review",
              "unsupported"
            ]
          },
          "revocation_behavior": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "support_owner": {
            "type": "string"
          }
        }
      },
      "ProviderIntegrationGateModule": {
        "type": "object",
        "required": [
          "module_id",
          "label",
          "workspace_root",
          "lifecycle_state",
          "sync_health",
          "adapter_posture",
          "support_owner"
        ],
        "properties": {
          "module_id": {
            "type": "string",
            "enum": [
              "agent",
              "agency",
              "business",
              "mortgage",
              "legal",
              "developer",
              "renovation"
            ]
          },
          "label": {
            "type": "string"
          },
          "workspace_root": {
            "type": "string"
          },
          "lifecycle_state": {
            "type": "string",
            "enum": [
              "sandbox_installed",
              "live_review",
              "deferred"
            ]
          },
          "sync_health": {
            "type": "string",
            "enum": [
              "healthy",
              "review_required",
              "deferred"
            ]
          },
          "adapter_posture": {
            "type": "string",
            "enum": [
              "local_gate_ready_pending_release",
              "deferred_adapter_state_visible",
              "unsupported_adapter_state_visible"
            ]
          },
          "support_owner": {
            "type": "string"
          }
        }
      },
      "ProviderIntegrationGateDecision": {
        "type": "object",
        "required": [
          "action",
          "allowed",
          "decision",
          "reason",
          "required_scope",
          "route_mode",
          "source_contract",
          "runtime_boundary",
          "satisfied_prerequisite_ids",
          "missing_prerequisite_ids",
          "next_action"
        ],
        "properties": {
          "action": {
            "type": "string",
            "enum": [
              "install_consent",
              "revocation"
            ]
          },
          "allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "decision": {
            "type": "string",
            "enum": [
              "closed_until_reviewed_runtime_route"
            ]
          },
          "reason": {
            "type": "string",
            "enum": [
              "install_route_deferred_until_reviewed_consent_mutation",
              "revocation_route_deferred_until_reviewed_fanout_mutation"
            ]
          },
          "required_scope": {
            "type": "string",
            "enum": [
              "provider_integrations.manage"
            ]
          },
          "route_mode": {
            "type": "string",
            "enum": [
              "read_only_gate_no_side_effects"
            ]
          },
          "source_contract": {
            "type": "string",
            "enum": [
              "vertical_apps_integration_surface"
            ]
          },
          "runtime_boundary": {
            "type": "string",
            "enum": [
              "runtime_app_install_routes_deferred_until_prerequisites_pass"
            ]
          },
          "satisfied_prerequisite_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "missing_prerequisite_ids": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "next_action": {
            "type": "string"
          }
        }
      },
      "ProviderIntegrationGateConsent": {
        "type": "object",
        "required": [
          "consent_required",
          "consent_text_version",
          "consent_subject",
          "required_acknowledgements",
          "data_categories",
          "scopes"
        ],
        "properties": {
          "consent_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "consent_text_version": {
            "type": "string",
            "enum": [
              "connected_app_install_consent_v1"
            ]
          },
          "consent_subject": {
            "type": "string",
            "enum": [
              "workspace_connected_app_install"
            ]
          },
          "required_acknowledgements": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "data_categories": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "scopes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformScope"
            }
          }
        }
      },
      "ProviderIntegrationGateRevocation": {
        "type": "object",
        "required": [
          "revoke_supported",
          "terminal_state",
          "fanout_targets",
          "future_reads_blocked",
          "audit_event_required"
        ],
        "properties": {
          "revoke_supported": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "terminal_state": {
            "type": "string",
            "enum": [
              "revoked"
            ]
          },
          "fanout_targets": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "future_reads_blocked": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "audit_event_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          }
        }
      },
      "ProviderIntegrationGateAuthorization": {
        "type": "object",
        "required": [
          "organization_id",
          "client_id",
          "api_key_id",
          "required_scope",
          "granted_provider_scopes",
          "actor_model"
        ],
        "properties": {
          "organization_id": {
            "type": "string",
            "format": "uuid"
          },
          "client_id": {
            "type": "string",
            "format": "uuid"
          },
          "api_key_id": {
            "type": "string",
            "format": "uuid"
          },
          "required_scope": {
            "type": "string",
            "enum": [
              "provider_integrations.manage"
            ]
          },
          "granted_provider_scopes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformScope"
            }
          },
          "actor_model": {
            "type": "string",
            "enum": [
              "api_key_automation_client"
            ]
          }
        }
      },
      "ProviderIntegrationGatePublicSafety": {
        "type": "object",
        "required": [
          "raw_credentials_returned",
          "oauth_tokens_returned",
          "webhook_secrets_returned",
          "customer_pii_returned",
          "raw_sync_payloads_returned",
          "direct_external_system_calls",
          "install_mutation_enabled",
          "revocation_mutation_enabled",
          "pause_resume_mutation_enabled"
        ],
        "properties": {
          "raw_credentials_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "oauth_tokens_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "webhook_secrets_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "customer_pii_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_sync_payloads_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "direct_external_system_calls": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "install_mutation_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "revocation_mutation_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "pause_resume_mutation_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "PlatformRenovationProjectStatus": {
        "type": "string",
        "enum": [
          "draft",
          "readiness_review",
          "active",
          "paused",
          "completed",
          "cancelled",
          "archived"
        ]
      },
      "PlatformRenovationMilestoneStatus": {
        "type": "string",
        "enum": [
          "not_started",
          "in_progress",
          "blocked",
          "completed",
          "cancelled"
        ]
      },
      "CreatePlatformRenovationProjectRequest": {
        "type": "object",
        "required": [
          "project_slug",
          "project_name",
          "client_reference_hash",
          "site_reference_hash"
        ],
        "properties": {
          "project_slug": {
            "type": "string",
            "pattern": "^[a-z0-9][a-z0-9-]{1,62}[a-z0-9]$",
            "description": "Partner-owned project slug. Raw client or site address details stay hashed."
          },
          "project_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "client_reference_hash": {
            "type": "string",
            "minLength": 8,
            "maxLength": 256,
            "description": "Partner-generated hash; raw client PII is never accepted or returned."
          },
          "site_reference_hash": {
            "type": "string",
            "minLength": 8,
            "maxLength": 256,
            "description": "Partner-generated hash; raw site address is never accepted or returned."
          },
          "budget_band": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 80
          },
          "target_start_date": {
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "target_completion_date": {
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "source_type": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "source_system": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "source_record_id": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 160
          },
          "metadata": {
            "type": "object",
            "additionalProperties": true,
            "description": "Optional public-safe metadata. Raw client PII, supplier pricing, and payment state are not allowed."
          }
        }
      },
      "CreatePlatformRenovationMilestoneRequest": {
        "type": "object",
        "required": [
          "milestone_key",
          "milestone_name"
        ],
        "properties": {
          "milestone_key": {
            "type": "string",
            "pattern": "^[a-z0-9][a-z0-9_:-]{1,63}$",
            "description": "Partner-owned milestone key scoped to the Renovation project."
          },
          "milestone_name": {
            "type": "string",
            "minLength": 1,
            "maxLength": 200
          },
          "due_date": {
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "metadata": {
            "type": "object",
            "additionalProperties": true,
            "description": "Optional public-safe milestone metadata. Cost impact and supplier pricing remain redacted."
          }
        }
      },
      "SubmitPlatformRenovationProgressRequest": {
        "type": "object",
        "required": [
          "expected_version",
          "progress_percent",
          "milestone_status"
        ],
        "properties": {
          "expected_version": {
            "type": "integer",
            "minimum": 0,
            "description": "Optimistic milestone version returned by the latest milestone response."
          },
          "progress_percent": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100
          },
          "milestone_status": {
            "type": "string",
            "enum": [
              "in_progress",
              "blocked",
              "completed"
            ]
          },
          "blocked_reason": {
            "type": [
              "string",
              "null"
            ],
            "minLength": 1,
            "maxLength": 500,
            "description": "Required when milestone_status is blocked."
          },
          "site_progress_summary": {
            "type": "object",
            "additionalProperties": true,
            "description": "Optional public-safe progress summary. Raw documents, client PII, supplier pricing, and payment state are not accepted."
          }
        }
      },
      "PreparePlatformRenovationProjectActionRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "action",
          "confirm_prepare"
        ],
        "properties": {
          "action": {
            "type": "string",
            "enum": [
              "prepare_variation_order_draft",
              "prepare_warranty_request_checklist"
            ]
          },
          "confirm_prepare": {
            "type": "boolean",
            "enum": [
              true
            ],
            "description": "Explicitly acknowledges preparation of review material only. This does not confirm or execute any Renovation action."
          }
        }
      },
      "PlatformRenovationProjectSummary": {
        "type": "object",
        "required": [
          "id",
          "project_slug",
          "project_name",
          "project_status",
          "readiness_status",
          "budget_band",
          "target_start_date",
          "target_completion_date",
          "first_workflow_completed",
          "redaction",
          "live_gates",
          "version",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "project_slug": {
            "type": "string"
          },
          "project_name": {
            "type": "string"
          },
          "project_status": {
            "$ref": "#/components/schemas/PlatformRenovationProjectStatus"
          },
          "readiness_status": {
            "type": "string"
          },
          "budget_band": {
            "type": [
              "string",
              "null"
            ]
          },
          "target_start_date": {
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "target_completion_date": {
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "first_workflow_completed": {
            "type": "boolean"
          },
          "redaction": {
            "type": "object",
            "required": [
              "margin_redacted",
              "supplier_pricing_redacted",
              "payment_state_redacted",
              "client_reference_returned",
              "site_reference_returned"
            ],
            "properties": {
              "margin_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "supplier_pricing_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "payment_state_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "client_reference_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "site_reference_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "live_gates": {
            "type": "object",
            "required": [
              "live_actions_enabled",
              "live_request_ready",
              "live_approved"
            ],
            "properties": {
              "live_actions_enabled": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "live_request_ready": {
                "type": "boolean"
              },
              "live_approved": {
                "type": "boolean"
              }
            }
          },
          "version": {
            "type": "integer",
            "minimum": 0
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformRenovationMilestoneSummary": {
        "type": "object",
        "required": [
          "id",
          "project_id",
          "milestone_key",
          "milestone_name",
          "milestone_status",
          "progress_percent",
          "due_date",
          "completed_at",
          "blocked_reason",
          "client_visible",
          "role_visibility",
          "redaction",
          "version",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "project_id": {
            "type": "string",
            "format": "uuid"
          },
          "milestone_key": {
            "type": "string"
          },
          "milestone_name": {
            "type": "string"
          },
          "milestone_status": {
            "$ref": "#/components/schemas/PlatformRenovationMilestoneStatus"
          },
          "progress_percent": {
            "type": "integer",
            "minimum": 0,
            "maximum": 100
          },
          "due_date": {
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "completed_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "blocked_reason": {
            "type": [
              "string",
              "null"
            ]
          },
          "client_visible": {
            "type": "boolean"
          },
          "role_visibility": {
            "type": "string"
          },
          "redaction": {
            "type": "object",
            "required": [
              "cost_impact_redacted",
              "supplier_price_redacted"
            ],
            "properties": {
              "cost_impact_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "supplier_price_redacted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "version": {
            "type": "integer",
            "minimum": 0
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformRenovationWorkspaceSafety": {
        "type": "object",
        "required": [
          "service_role_only_tables",
          "partner_reads_exposed",
          "live_actions_exposed",
          "cost_fields_redacted",
          "supplier_pricing_redacted",
          "payment_state_redacted"
        ],
        "properties": {
          "service_role_only_tables": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "partner_reads_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "live_actions_exposed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "cost_fields_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "supplier_pricing_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "payment_state_redacted": {
            "type": "boolean",
            "enum": [
              true
            ]
          }
        }
      },
      "PlatformRenovationProjectListResponse": {
        "type": "object",
        "required": [
          "projects",
          "safety",
          "livemode",
          "request_id"
        ],
        "properties": {
          "projects": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformRenovationProjectSummary"
            }
          },
          "safety": {
            "$ref": "#/components/schemas/PlatformRenovationWorkspaceSafety"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformRenovationProjectCreateResponse": {
        "type": "object",
        "required": [
          "project",
          "safety",
          "livemode",
          "request_id",
          "idempotency_key_hash"
        ],
        "properties": {
          "project": {
            "$ref": "#/components/schemas/PlatformRenovationProjectSummary"
          },
          "safety": {
            "$ref": "#/components/schemas/PlatformRenovationWorkspaceSafety"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          },
          "idempotency_key_hash": {
            "type": "string"
          }
        }
      },
      "PlatformRenovationMilestoneMutationResponse": {
        "type": "object",
        "required": [
          "milestone",
          "safety",
          "livemode",
          "request_id",
          "idempotency_key_hash"
        ],
        "properties": {
          "milestone": {
            "$ref": "#/components/schemas/PlatformRenovationMilestoneSummary"
          },
          "safety": {
            "$ref": "#/components/schemas/PlatformRenovationWorkspaceSafety"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          },
          "idempotency_key_hash": {
            "type": "string"
          }
        }
      },
      "PlatformRenovationProjectActionResponse": {
        "type": "object",
        "required": [
          "action",
          "action_id",
          "status",
          "required_scope",
          "project",
          "prepared_output",
          "professional_review",
          "side_effects",
          "livemode",
          "request_id",
          "idempotency_key_hash"
        ],
        "properties": {
          "action": {
            "type": "string",
            "enum": [
              "prepare_variation_order_draft",
              "prepare_warranty_request_checklist"
            ]
          },
          "action_id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "prepared_for_review"
            ]
          },
          "required_scope": {
            "type": "string",
            "enum": [
              "renovations.projects.write"
            ]
          },
          "project": {
            "$ref": "#/components/schemas/PlatformRenovationProjectSummary"
          },
          "prepared_output": {
            "type": "object",
            "required": [
              "kind",
              "headline",
              "checklist",
              "exclusions"
            ],
            "properties": {
              "kind": {
                "type": "string",
                "enum": [
                  "variation_order_draft",
                  "warranty_request_checklist"
                ]
              },
              "headline": {
                "type": "string"
              },
              "checklist": {
                "type": "array",
                "minItems": 1,
                "items": {
                  "type": "string"
                }
              },
              "exclusions": {
                "type": "object",
                "required": [
                  "cost_amounts_included",
                  "supplier_pricing_included",
                  "client_approval_recorded"
                ],
                "properties": {
                  "cost_amounts_included": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "supplier_pricing_included": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "client_approval_recorded": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              }
            }
          },
          "professional_review": {
            "type": "object",
            "required": [
              "required",
              "reviewer_role",
              "confirmation_available",
              "execution_available"
            ],
            "properties": {
              "required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "reviewer_role": {
                "type": "string",
                "enum": [
                  "project_manager"
                ]
              },
              "confirmation_available": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "execution_available": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "side_effects": {
            "type": "object",
            "required": [
              "project_mutated",
              "milestone_mutated",
              "variation_order_created",
              "warranty_request_submitted",
              "client_updated",
              "payment_state_changed",
              "external_calls_made",
              "sensitive_fields_exposed"
            ],
            "properties": {
              "project_mutated": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "milestone_mutated": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "variation_order_created": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "warranty_request_submitted": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "client_updated": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "payment_state_changed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "external_calls_made": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "sensitive_fields_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          },
          "idempotency_key_hash": {
            "type": "string"
          }
        }
      },
      "SandboxFixtureDomain": {
        "type": "string",
        "enum": [
          "all",
          "identity",
          "listings",
          "viewings",
          "agent_agency",
          "sites",
          "developer_inventory",
          "bank_frontends",
          "official_sources",
          "service_payments",
          "provider_os",
          "conveyancing",
          "consents",
          "webhooks"
        ],
        "description": "Deterministic sandbox fixture domain selector. `all` resets every domain."
      },
      "SandboxResettableFixtureDomain": {
        "type": "string",
        "enum": [
          "identity",
          "listings",
          "viewings",
          "agent_agency",
          "sites",
          "developer_inventory",
          "bank_frontends",
          "official_sources",
          "service_payments",
          "provider_os",
          "conveyancing",
          "consents",
          "webhooks"
        ],
        "description": "Concrete deterministic sandbox fixture domain."
      },
      "SandboxFixtureCatalogResponse": {
        "type": "object",
        "required": [
          "catalog",
          "fixtures",
          "authorization",
          "safety",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "catalog": {
            "type": "object",
            "required": [
              "baseline_version",
              "reset_scope",
              "fixture_count",
              "supported_domains",
              "reset_mode"
            ],
            "properties": {
              "baseline_version": {
                "type": "string",
                "enum": [
                  "platform_sandbox.v1.2026_06_19"
                ]
              },
              "reset_scope": {
                "type": "string",
                "enum": [
                  "sandbox.reset"
                ]
              },
              "fixture_count": {
                "type": "integer",
                "minimum": 0
              },
              "supported_domains": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SandboxFixtureDomain"
                }
              },
              "reset_mode": {
                "type": "string",
                "enum": [
                  "stateless_deterministic_fixture_reseed"
                ]
              }
            }
          },
          "fixtures": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "fixture_id",
                "fixture_domain",
                "label",
                "description",
                "route_paths",
                "required_scopes",
                "resettable",
                "data_class",
                "live_side_effects_blocked",
                "pii_returned"
              ],
              "properties": {
                "fixture_id": {
                  "type": "string"
                },
                "fixture_domain": {
                  "$ref": "#/components/schemas/SandboxResettableFixtureDomain"
                },
                "label": {
                  "type": "string"
                },
                "description": {
                  "type": "string"
                },
                "route_paths": {
                  "type": "array",
                  "items": {
                    "type": "string"
                  }
                },
                "required_scopes": {
                  "type": "array",
                  "items": {
                    "$ref": "#/components/schemas/PlatformScope"
                  }
                },
                "resettable": {
                  "type": "boolean",
                  "enum": [
                    true
                  ]
                },
                "data_class": {
                  "type": "string",
                  "enum": [
                    "public_safe",
                    "redacted_partner_workflow",
                    "redacted_financial_workflow"
                  ]
                },
                "live_side_effects_blocked": {
                  "type": "boolean",
                  "enum": [
                    true
                  ]
                },
                "pii_returned": {
                  "type": "boolean",
                  "enum": [
                    false
                  ]
                }
              }
            }
          },
          "authorization": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "api_key_id",
              "granted_sandbox_scopes",
              "actor_model",
              "live_data_access",
              "sandbox_side_effects"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "api_key_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_sandbox_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "actor_model": {
                "type": "string",
                "enum": [
                  "api_key_automation_client"
                ]
              },
              "live_data_access": {
                "type": "string",
                "enum": [
                  "blocked"
                ]
              },
              "sandbox_side_effects": {
                "type": "string",
                "enum": [
                  "stateless_deterministic_fixtures"
                ]
              }
            }
          },
          "safety": {
            "type": "object",
            "required": [
              "production_credentials_used",
              "provider_calls_made",
              "live_data_mutated",
              "database_rows_deleted",
              "database_rows_inserted",
              "persistent_fixture_state_mutated",
              "webhook_deliveries_sent"
            ],
            "properties": {
              "production_credentials_used": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "provider_calls_made": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "live_data_mutated": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "database_rows_deleted": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "database_rows_inserted": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "persistent_fixture_state_mutated": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "webhook_deliveries_sent": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "SandboxResetRequest": {
        "type": "object",
        "properties": {
          "fixture_domain": {
            "$ref": "#/components/schemas/SandboxFixtureDomain"
          }
        },
        "additionalProperties": false,
        "description": "Optional deterministic sandbox fixture domain reset selector. Omit to reset every stateless fixture domain."
      },
      "SandboxResetResponse": {
        "type": "object",
        "required": [
          "reset",
          "authorization",
          "side_effects",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "reset": {
            "type": "object",
            "required": [
              "accepted",
              "reset_id",
              "fixture_domain",
              "domains_reset",
              "fixture_count",
              "baseline_version",
              "reset_mode",
              "completed_at"
            ],
            "properties": {
              "accepted": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "reset_id": {
                "type": "string"
              },
              "fixture_domain": {
                "$ref": "#/components/schemas/SandboxFixtureDomain"
              },
              "domains_reset": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/SandboxResettableFixtureDomain"
                }
              },
              "fixture_count": {
                "type": "integer",
                "minimum": 0
              },
              "baseline_version": {
                "type": "string",
                "enum": [
                  "platform_sandbox.v1.2026_06_19"
                ]
              },
              "reset_mode": {
                "type": "string",
                "enum": [
                  "stateless_deterministic_fixture_reseed"
                ]
              },
              "completed_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "authorization": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "api_key_id",
              "granted_sandbox_scopes",
              "actor_model",
              "live_data_access",
              "sandbox_side_effects"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "api_key_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_sandbox_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "actor_model": {
                "type": "string",
                "enum": [
                  "api_key_automation_client"
                ]
              },
              "live_data_access": {
                "type": "string",
                "enum": [
                  "blocked"
                ]
              },
              "sandbox_side_effects": {
                "type": "string",
                "enum": [
                  "stateless_deterministic_fixtures"
                ]
              }
            }
          },
          "side_effects": {
            "type": "object",
            "required": [
              "production_credentials_used",
              "provider_calls_made",
              "live_data_mutated",
              "database_rows_deleted",
              "database_rows_inserted",
              "persistent_fixture_state_mutated",
              "webhook_deliveries_sent",
              "idempotency_and_request_events_only"
            ],
            "properties": {
              "production_credentials_used": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "provider_calls_made": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "live_data_mutated": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "database_rows_deleted": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "database_rows_inserted": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "persistent_fixture_state_mutated": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "webhook_deliveries_sent": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "idempotency_and_request_events_only": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "ServiceBookingPaymentStatusResponse": {
        "type": "object",
        "required": [
          "payment_status",
          "ledger_sources",
          "public_safety",
          "authorization",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "payment_status": {
            "type": "object",
            "required": [
              "booking_id",
              "provider_id",
              "provider_name",
              "service_type",
              "booking_status",
              "scheduled_date",
              "currency",
              "payment",
              "accounting_reference"
            ],
            "description": "Sandbox booking payment status backed by booking, transaction, refund, and payout ledger references. Customer PII, raw card data, Stripe secrets, hidden gateway metadata, internal fraud signals, and raw processor payloads are not returned.",
            "properties": {
              "booking_id": {
                "type": "string"
              },
              "provider_id": {
                "type": "string"
              },
              "provider_name": {
                "type": "string"
              },
              "service_type": {
                "type": "string"
              },
              "booking_status": {
                "type": "string",
                "enum": [
                  "completed",
                  "confirmed",
                  "pending_payment"
                ]
              },
              "scheduled_date": {
                "type": "string",
                "format": "date"
              },
              "currency": {
                "type": "string",
                "enum": [
                  "SGD"
                ]
              },
              "payment": {
                "type": "object",
                "required": [
                  "status",
                  "method_type",
                  "invoice_status",
                  "refund_status",
                  "refund_reference",
                  "amount_breakdown",
                  "payout_eligibility"
                ],
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "paid",
                      "failed",
                      "partially_refunded",
                      "disputed"
                    ]
                  },
                  "method_type": {
                    "type": "string",
                    "enum": [
                      "card",
                      "points_wallet"
                    ]
                  },
                  "invoice_status": {
                    "type": "string",
                    "enum": [
                      "paid",
                      "open"
                    ]
                  },
                  "refund_status": {
                    "type": "string",
                    "enum": [
                      "none",
                      "partial_succeeded",
                      "manual_required"
                    ]
                  },
                  "refund_reference": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "amount_breakdown": {
                    "type": "object",
                    "required": [
                      "gross_booking_amount_cents",
                      "platform_fee_cents",
                      "provider_payable_cents",
                      "customer_paid_cents",
                      "refunded_cents",
                      "reversal_cents",
                      "outstanding_cents",
                      "wallet_paid_cents",
                      "points_redeemed_cents"
                    ],
                    "properties": {
                      "gross_booking_amount_cents": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "platform_fee_cents": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "provider_payable_cents": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "customer_paid_cents": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "refunded_cents": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "reversal_cents": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "outstanding_cents": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "wallet_paid_cents": {
                        "type": "integer",
                        "minimum": 0
                      },
                      "points_redeemed_cents": {
                        "type": "integer",
                        "minimum": 0
                      }
                    }
                  },
                  "payout_eligibility": {
                    "type": "object",
                    "required": [
                      "status",
                      "payout_id",
                      "settlement_eta",
                      "reason"
                    ],
                    "properties": {
                      "status": {
                        "type": "string",
                        "enum": [
                          "included_in_payout",
                          "ready_for_payout",
                          "held",
                          "not_eligible",
                          "reversed"
                        ]
                      },
                      "payout_id": {
                        "type": [
                          "string",
                          "null"
                        ]
                      },
                      "settlement_eta": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "format": "date"
                      },
                      "reason": {
                        "type": [
                          "string",
                          "null"
                        ],
                        "enum": [
                          "awaiting_provider_completion",
                          "payment_failed",
                          "partial_refund_before_payout",
                          "chargeback_like_reversal",
                          null
                        ]
                      }
                    }
                  }
                }
              },
              "accounting_reference": {
                "type": "string"
              }
            }
          },
          "ledger_sources": {
            "type": "object",
            "required": [
              "bookings_table",
              "transactions_table",
              "refunds_table",
              "payouts_table",
              "payout_batch_source",
              "client_side_calculation_used",
              "fee_schedule_id",
              "pricing_model",
              "platform_access_fee_basis_points",
              "transaction_fee_rates",
              "marketplace_commission_basis_points",
              "standard_payout_fee_cents",
              "standard_payout_timing",
              "redaction_version"
            ],
            "properties": {
              "bookings_table": {
                "type": "string",
                "enum": [
                  "services_bookings"
                ]
              },
              "transactions_table": {
                "type": "string",
                "enum": [
                  "services_transactions"
                ]
              },
              "refunds_table": {
                "type": "string",
                "enum": [
                  "services_booking_refunds"
                ]
              },
              "payouts_table": {
                "type": "string",
                "enum": [
                  "services_payouts"
                ]
              },
              "payout_batch_source": {
                "type": "string",
                "enum": [
                  "services_payouts.id"
                ]
              },
              "client_side_calculation_used": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "fee_schedule_id": {
                "type": "string",
                "enum": [
                  "fee_schedule_transaction_only_2026_06"
                ]
              },
              "pricing_model": {
                "type": "string",
                "enum": [
                  "transaction_only"
                ]
              },
              "platform_access_fee_basis_points": {
                "type": "integer",
                "enum": [
                  0
                ]
              },
              "transaction_fee_rates": {
                "type": "object",
                "required": [
                  "domestic_card",
                  "paynow"
                ],
                "properties": {
                  "domestic_card": {
                    "type": "object",
                    "required": [
                      "basis_points",
                      "fixed_fee_cents"
                    ],
                    "properties": {
                      "basis_points": {
                        "type": "integer",
                        "enum": [
                          430
                        ]
                      },
                      "fixed_fee_cents": {
                        "type": "integer",
                        "enum": [
                          70
                        ]
                      }
                    }
                  },
                  "paynow": {
                    "type": "object",
                    "required": [
                      "basis_points",
                      "fixed_fee_cents"
                    ],
                    "properties": {
                      "basis_points": {
                        "type": "integer",
                        "enum": [
                          170
                        ]
                      },
                      "fixed_fee_cents": {
                        "type": "integer",
                        "enum": [
                          10
                        ]
                      }
                    }
                  }
                }
              },
              "marketplace_commission_basis_points": {
                "type": "integer",
                "enum": [
                  0
                ]
              },
              "standard_payout_fee_cents": {
                "type": "integer",
                "enum": [
                  0
                ]
              },
              "standard_payout_timing": {
                "type": "string",
                "enum": [
                  "T+30_calendar_days_after_payable_accrual"
                ]
              },
              "redaction_version": {
                "type": "string",
                "enum": [
                  "service_booking_payment_status.v1"
                ]
              }
            }
          },
          "public_safety": {
            "type": "object",
            "required": [
              "customer_pii_returned",
              "card_details_returned",
              "card_fingerprint_returned",
              "stripe_secret_returned",
              "stripe_payment_intent_returned",
              "stripe_customer_id_returned",
              "bank_account_returned",
              "hidden_gateway_metadata_returned",
              "private_customer_notes_returned",
              "internal_fraud_signals_returned",
              "raw_processor_payload_returned",
              "service_role_identifier_returned"
            ],
            "properties": {
              "customer_pii_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "card_details_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "card_fingerprint_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "stripe_secret_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "stripe_payment_intent_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "stripe_customer_id_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "bank_account_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "hidden_gateway_metadata_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "private_customer_notes_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "internal_fraud_signals_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_processor_payload_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "service_role_identifier_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "authorization": {
            "$ref": "#/components/schemas/CurrentServiceProviderEarningsResponse/properties/authorization"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "SandboxServiceProviderPayoutSimulationRequest": {
        "type": "object",
        "required": [
          "scenario"
        ],
        "properties": {
          "scenario": {
            "type": "string",
            "enum": [
              "draft",
              "approved",
              "processing",
              "reconciled",
              "partial_refund_after_payout",
              "manual_adjustment_increase",
              "manual_adjustment_decrease",
              "provider_onboarding_missing"
            ]
          }
        },
        "description": "Sandbox-only payout simulation scenario selector. The route returns deterministic fixtures and does not create payout jobs, provider mutations, Stripe/Xero calls, or bank movements."
      },
      "SandboxServiceProviderPayoutSimulationResponse": {
        "type": "object",
        "required": [
          "simulation",
          "ledger_sources",
          "public_safety",
          "side_effects",
          "authorization",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "simulation": {
            "type": "object",
            "required": [
              "scenario",
              "description",
              "payout",
              "line_items",
              "provider_setup"
            ],
            "properties": {
              "scenario": {
                "$ref": "#/components/schemas/SandboxServiceProviderPayoutSimulationRequest/properties/scenario"
              },
              "description": {
                "type": "string"
              },
              "payout": {
                "type": "object",
                "required": [
                  "id",
                  "provider_id",
                  "provider_name",
                  "period",
                  "currency",
                  "status",
                  "gross_booking_amount_cents",
                  "platform_fee_cents",
                  "net_payout_cents",
                  "adjustment_cents",
                  "refund_reversal_cents",
                  "payout_line_item_count",
                  "paid_at",
                  "settlement_eta",
                  "failure_reason",
                  "next_action",
                  "accounting_reference"
                ],
                "properties": {
                  "id": {
                    "type": "string"
                  },
                  "provider_id": {
                    "type": "string"
                  },
                  "provider_name": {
                    "type": "string"
                  },
                  "period": {
                    "type": "object",
                    "required": [
                      "start_date",
                      "end_date",
                      "timezone"
                    ],
                    "properties": {
                      "start_date": {
                        "type": "string",
                        "format": "date"
                      },
                      "end_date": {
                        "type": "string",
                        "format": "date"
                      },
                      "timezone": {
                        "type": "string",
                        "enum": [
                          "Asia/Singapore"
                        ]
                      }
                    }
                  },
                  "currency": {
                    "type": "string",
                    "enum": [
                      "SGD"
                    ]
                  },
                  "status": {
                    "type": "string",
                    "enum": [
                      "draft",
                      "pending_approval",
                      "approved",
                      "processing",
                      "reconciled"
                    ]
                  },
                  "gross_booking_amount_cents": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "platform_fee_cents": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "net_payout_cents": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "adjustment_cents": {
                    "type": "integer"
                  },
                  "refund_reversal_cents": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "payout_line_item_count": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "paid_at": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "format": "date-time"
                  },
                  "settlement_eta": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "format": "date"
                  },
                  "failure_reason": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "next_action": {
                    "type": [
                      "string",
                      "null"
                    ],
                    "enum": [
                      "awaiting_admin_approval",
                      "provider_onboarding_required",
                      "operator_review_required",
                      null
                    ]
                  },
                  "accounting_reference": {
                    "type": "string"
                  }
                }
              },
              "line_items": {
                "type": "array",
                "items": {
                  "type": "object",
                  "required": [
                    "id",
                    "payout_id",
                    "source_type",
                    "source_booking_reference",
                    "description",
                    "gross_booking_amount_cents",
                    "platform_fee_cents",
                    "net_amount_cents",
                    "adjustment_cents",
                    "refund_reversal_cents",
                    "ledger_account_code",
                    "accounting_reference"
                  ],
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "payout_id": {
                      "type": "string"
                    },
                    "source_type": {
                      "type": "string",
                      "enum": [
                        "booking_payable",
                        "refund_reversal",
                        "manual_adjustment"
                      ]
                    },
                    "source_booking_reference": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "description": {
                      "type": "string"
                    },
                    "gross_booking_amount_cents": {
                      "type": "integer",
                      "minimum": 0
                    },
                    "platform_fee_cents": {
                      "type": "integer",
                      "minimum": 0
                    },
                    "net_amount_cents": {
                      "type": "integer"
                    },
                    "adjustment_cents": {
                      "type": "integer"
                    },
                    "refund_reversal_cents": {
                      "type": "integer",
                      "minimum": 0
                    },
                    "ledger_account_code": {
                      "type": "string",
                      "enum": [
                        "PROVIDER_ACCRUAL",
                        "PROVIDER_OFFSET"
                      ]
                    },
                    "accounting_reference": {
                      "type": "string"
                    }
                  }
                }
              },
              "provider_setup": {
                "type": "object",
                "required": [
                  "connect_account_status",
                  "bank_status",
                  "payouts_enabled",
                  "next_action"
                ],
                "properties": {
                  "connect_account_status": {
                    "type": "string",
                    "enum": [
                      "verified",
                      "missing",
                      "requirements_due"
                    ]
                  },
                  "bank_status": {
                    "type": "string",
                    "enum": [
                      "verified",
                      "missing",
                      "unverified"
                    ]
                  },
                  "payouts_enabled": {
                    "type": "boolean"
                  },
                  "next_action": {
                    "type": "string",
                    "enum": [
                      "none",
                      "complete_hosted_onboarding",
                      "resolve_connect_requirements"
                    ]
                  }
                }
              }
            }
          },
          "ledger_sources": {
            "type": "object",
            "required": [
              "payouts_table",
              "transactions_table",
              "refunds_table",
              "payout_batch_source",
              "payout_line_item_source",
              "simulation_source",
              "client_side_calculation_used",
              "fee_schedule_id",
              "pricing_model",
              "platform_access_fee_basis_points",
              "transaction_fee_rates",
              "marketplace_commission_basis_points",
              "standard_payout_fee_cents",
              "standard_payout_timing",
              "redaction_version"
            ],
            "properties": {
              "payouts_table": {
                "type": "string",
                "enum": [
                  "services_payouts"
                ]
              },
              "transactions_table": {
                "type": "string",
                "enum": [
                  "services_transactions"
                ]
              },
              "refunds_table": {
                "type": "string",
                "enum": [
                  "services_booking_refunds"
                ]
              },
              "payout_batch_source": {
                "type": "string",
                "enum": [
                  "services_payouts.id"
                ]
              },
              "payout_line_item_source": {
                "type": "string",
                "enum": [
                  "services_transactions.payout_id"
                ]
              },
              "simulation_source": {
                "type": "string",
                "enum": [
                  "deterministic_sandbox_fixture"
                ]
              },
              "client_side_calculation_used": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "fee_schedule_id": {
                "type": "string",
                "enum": [
                  "fee_schedule_transaction_only_2026_06"
                ]
              },
              "pricing_model": {
                "type": "string",
                "enum": [
                  "transaction_only"
                ]
              },
              "platform_access_fee_basis_points": {
                "type": "integer",
                "enum": [
                  0
                ]
              },
              "transaction_fee_rates": {
                "type": "object",
                "required": [
                  "domestic_card",
                  "paynow"
                ],
                "properties": {
                  "domestic_card": {
                    "type": "object",
                    "required": [
                      "basis_points",
                      "fixed_fee_cents"
                    ],
                    "properties": {
                      "basis_points": {
                        "type": "integer",
                        "enum": [
                          430
                        ]
                      },
                      "fixed_fee_cents": {
                        "type": "integer",
                        "enum": [
                          70
                        ]
                      }
                    }
                  },
                  "paynow": {
                    "type": "object",
                    "required": [
                      "basis_points",
                      "fixed_fee_cents"
                    ],
                    "properties": {
                      "basis_points": {
                        "type": "integer",
                        "enum": [
                          170
                        ]
                      },
                      "fixed_fee_cents": {
                        "type": "integer",
                        "enum": [
                          10
                        ]
                      }
                    }
                  }
                }
              },
              "marketplace_commission_basis_points": {
                "type": "integer",
                "enum": [
                  0
                ]
              },
              "standard_payout_fee_cents": {
                "type": "integer",
                "enum": [
                  0
                ]
              },
              "standard_payout_timing": {
                "type": "string",
                "enum": [
                  "T+30_calendar_days_after_payable_accrual"
                ]
              },
              "redaction_version": {
                "type": "string",
                "enum": [
                  "service_provider_payout_simulation.v1"
                ]
              }
            }
          },
          "public_safety": {
            "$ref": "#/components/schemas/ServiceProviderPayoutsResponse/properties/public_safety"
          },
          "side_effects": {
            "type": "object",
            "required": [
              "real_stripe_charges_created",
              "real_stripe_transfers_created",
              "real_stripe_payouts_created",
              "xero_journals_created",
              "payout_jobs_enqueued",
              "payout_records_created",
              "settlement_records_mutated",
              "fixture_state_mutated",
              "idempotency_and_request_events_only"
            ],
            "properties": {
              "real_stripe_charges_created": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "real_stripe_transfers_created": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "real_stripe_payouts_created": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "xero_journals_created": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "payout_jobs_enqueued": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "payout_records_created": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "settlement_records_mutated": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "fixture_state_mutated": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "idempotency_and_request_events_only": {
                "type": "boolean",
                "enum": [
                  true
                ]
              }
            }
          },
          "authorization": {
            "$ref": "#/components/schemas/CurrentServiceProviderEarningsResponse/properties/authorization"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "CurrentServiceProviderEarningsResponse": {
        "type": "object",
        "required": [
          "earnings",
          "authorization",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "earnings": {
            "type": "object",
            "required": [
              "provider_id",
              "provider_name",
              "period",
              "currency",
              "totals",
              "booking_summary",
              "payout_summary",
              "ledger_sources",
              "public_safety"
            ],
            "description": "Sandbox provider earnings summary backed by ledger source references. Customer PII, card details, Stripe secrets, bank-account data, and raw processor payloads are not returned.",
            "properties": {
              "provider_id": {
                "type": "string"
              },
              "provider_name": {
                "type": "string"
              },
              "period": {
                "type": "object",
                "required": [
                  "start_date",
                  "end_date",
                  "timezone"
                ],
                "properties": {
                  "start_date": {
                    "type": "string",
                    "format": "date"
                  },
                  "end_date": {
                    "type": "string",
                    "format": "date"
                  },
                  "timezone": {
                    "type": "string",
                    "enum": [
                      "Asia/Singapore"
                    ]
                  }
                }
              },
              "currency": {
                "type": "string",
                "enum": [
                  "SGD"
                ]
              },
              "totals": {
                "type": "object",
                "required": [
                  "gross_booking_amount_cents",
                  "platform_fee_cents",
                  "net_payable_cents",
                  "pending_payout_cents",
                  "paid_payout_cents",
                  "held_amount_cents",
                  "adjustment_cents",
                  "refund_reversal_cents"
                ],
                "properties": {
                  "gross_booking_amount_cents": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "platform_fee_cents": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "net_payable_cents": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "pending_payout_cents": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "paid_payout_cents": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "held_amount_cents": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "adjustment_cents": {
                    "type": "integer"
                  },
                  "refund_reversal_cents": {
                    "type": "integer",
                    "minimum": 0
                  }
                }
              },
              "booking_summary": {
                "type": "object",
                "required": [
                  "completed_bookings",
                  "pending_completion_bookings",
                  "failed_payments",
                  "refunded_bookings"
                ],
                "properties": {
                  "completed_bookings": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "pending_completion_bookings": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "failed_payments": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "refunded_bookings": {
                    "type": "integer",
                    "minimum": 0
                  }
                }
              },
              "payout_summary": {
                "type": "object",
                "required": [
                  "next_payout_status",
                  "next_payout_eta",
                  "last_payout_reference",
                  "failed_payouts"
                ],
                "properties": {
                  "next_payout_status": {
                    "type": "string",
                    "enum": [
                      "ready_for_payout"
                    ]
                  },
                  "next_payout_eta": {
                    "type": "string",
                    "format": "date"
                  },
                  "last_payout_reference": {
                    "type": "string"
                  },
                  "failed_payouts": {
                    "type": "integer",
                    "minimum": 0
                  }
                }
              },
              "ledger_sources": {
                "type": "object",
                "required": [
                  "transactions_table",
                  "payouts_table",
                  "payout_batch_source",
                  "refunds_table",
                  "client_side_calculation_used",
                  "fee_schedule_id",
                  "pricing_model",
                  "platform_access_fee_basis_points",
                  "transaction_fee_rates",
                  "marketplace_commission_basis_points",
                  "standard_payout_fee_cents",
                  "standard_payout_timing"
                ],
                "properties": {
                  "transactions_table": {
                    "type": "string",
                    "enum": [
                      "services_transactions"
                    ]
                  },
                  "payouts_table": {
                    "type": "string",
                    "enum": [
                      "services_payouts"
                    ]
                  },
                  "payout_batch_source": {
                    "type": "string",
                    "enum": [
                      "services_payouts.id"
                    ]
                  },
                  "refunds_table": {
                    "type": "string",
                    "enum": [
                      "services_booking_refunds"
                    ]
                  },
                  "client_side_calculation_used": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "fee_schedule_id": {
                    "type": "string",
                    "enum": [
                      "fee_schedule_transaction_only_2026_06"
                    ]
                  },
                  "pricing_model": {
                    "type": "string",
                    "enum": [
                      "transaction_only"
                    ]
                  },
                  "platform_access_fee_basis_points": {
                    "type": "integer",
                    "enum": [
                      0
                    ]
                  },
                  "transaction_fee_rates": {
                    "type": "object",
                    "required": [
                      "domestic_card",
                      "paynow"
                    ],
                    "properties": {
                      "domestic_card": {
                        "type": "object",
                        "required": [
                          "basis_points",
                          "fixed_fee_cents"
                        ],
                        "properties": {
                          "basis_points": {
                            "type": "integer",
                            "enum": [
                              430
                            ]
                          },
                          "fixed_fee_cents": {
                            "type": "integer",
                            "enum": [
                              70
                            ]
                          }
                        }
                      },
                      "paynow": {
                        "type": "object",
                        "required": [
                          "basis_points",
                          "fixed_fee_cents"
                        ],
                        "properties": {
                          "basis_points": {
                            "type": "integer",
                            "enum": [
                              170
                            ]
                          },
                          "fixed_fee_cents": {
                            "type": "integer",
                            "enum": [
                              10
                            ]
                          }
                        }
                      }
                    }
                  },
                  "marketplace_commission_basis_points": {
                    "type": "integer",
                    "enum": [
                      0
                    ]
                  },
                  "standard_payout_fee_cents": {
                    "type": "integer",
                    "enum": [
                      0
                    ]
                  },
                  "standard_payout_timing": {
                    "type": "string",
                    "enum": [
                      "T+30_calendar_days_after_payable_accrual"
                    ]
                  }
                }
              },
              "public_safety": {
                "type": "object",
                "required": [
                  "customer_pii_returned",
                  "card_details_returned",
                  "stripe_secret_returned",
                  "bank_account_returned",
                  "raw_processor_payload_returned"
                ],
                "properties": {
                  "customer_pii_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "card_details_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "stripe_secret_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "bank_account_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  },
                  "raw_processor_payload_returned": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              }
            }
          },
          "authorization": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "api_key_id",
              "granted_service_payment_scopes",
              "actor_model",
              "live_payment_identity",
              "live_payout_execution",
              "sandbox_side_effects"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "api_key_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_service_payment_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "actor_model": {
                "type": "string",
                "enum": [
                  "api_key_automation_client"
                ]
              },
              "live_payment_identity": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              },
              "live_payout_execution": {
                "type": "string",
                "enum": [
                  "admin_controlled"
                ]
              },
              "sandbox_side_effects": {
                "type": "string",
                "enum": [
                  "blocked"
                ]
              }
            }
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "ServiceProviderPayout": {
        "type": "object",
        "required": [
          "id",
          "provider_id",
          "provider_name",
          "period",
          "currency",
          "status",
          "gross_booking_amount_cents",
          "platform_fee_cents",
          "net_payout_cents",
          "adjustment_cents",
          "refund_reversal_cents",
          "payout_line_item_count",
          "paid_at",
          "settlement_eta",
          "failure_reason",
          "next_action",
          "accounting_reference"
        ],
        "description": "Sandbox payout statement summary backed by services_payouts and linked ledger rows. Raw processor payloads, bank-account data, and service-role identifiers are not returned.",
        "properties": {
          "id": {
            "type": "string"
          },
          "provider_id": {
            "type": "string"
          },
          "provider_name": {
            "type": "string"
          },
          "period": {
            "type": "object",
            "required": [
              "start_date",
              "end_date",
              "timezone"
            ],
            "properties": {
              "start_date": {
                "type": "string",
                "format": "date"
              },
              "end_date": {
                "type": "string",
                "format": "date"
              },
              "timezone": {
                "type": "string",
                "enum": [
                  "Asia/Singapore"
                ]
              }
            }
          },
          "currency": {
            "type": "string",
            "enum": [
              "SGD"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "paid",
              "ready_for_payout",
              "failed"
            ]
          },
          "gross_booking_amount_cents": {
            "type": "integer",
            "minimum": 0
          },
          "platform_fee_cents": {
            "type": "integer",
            "minimum": 0
          },
          "net_payout_cents": {
            "type": "integer",
            "minimum": 0
          },
          "adjustment_cents": {
            "type": "integer"
          },
          "refund_reversal_cents": {
            "type": "integer",
            "minimum": 0
          },
          "payout_line_item_count": {
            "type": "integer",
            "minimum": 0
          },
          "paid_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "settlement_eta": {
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "failure_reason": {
            "type": [
              "string",
              "null"
            ]
          },
          "next_action": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "awaiting_admin_approval",
              "operator_review_required",
              null
            ]
          },
          "accounting_reference": {
            "type": "string"
          }
        }
      },
      "ServiceProviderPayoutsResponse": {
        "type": "object",
        "required": [
          "payouts",
          "ledger_sources",
          "public_safety",
          "authorization",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "payouts": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ServiceProviderPayout"
            }
          },
          "ledger_sources": {
            "type": "object",
            "required": [
              "payouts_table",
              "transactions_table",
              "refunds_table",
              "payout_batch_source",
              "payout_line_item_source",
              "client_side_calculation_used",
              "fee_schedule_id",
              "pricing_model",
              "platform_access_fee_basis_points",
              "transaction_fee_rates",
              "marketplace_commission_basis_points",
              "standard_payout_fee_cents",
              "standard_payout_timing",
              "redaction_version"
            ],
            "properties": {
              "payouts_table": {
                "type": "string",
                "enum": [
                  "services_payouts"
                ]
              },
              "transactions_table": {
                "type": "string",
                "enum": [
                  "services_transactions"
                ]
              },
              "refunds_table": {
                "type": "string",
                "enum": [
                  "services_booking_refunds"
                ]
              },
              "payout_batch_source": {
                "type": "string",
                "enum": [
                  "services_payouts.id"
                ]
              },
              "payout_line_item_source": {
                "type": "string",
                "enum": [
                  "services_transactions.payout_id"
                ]
              },
              "client_side_calculation_used": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "fee_schedule_id": {
                "type": "string",
                "enum": [
                  "fee_schedule_transaction_only_2026_06"
                ]
              },
              "pricing_model": {
                "type": "string",
                "enum": [
                  "transaction_only"
                ]
              },
              "platform_access_fee_basis_points": {
                "type": "integer",
                "enum": [
                  0
                ]
              },
              "transaction_fee_rates": {
                "type": "object",
                "required": [
                  "domestic_card",
                  "paynow"
                ],
                "properties": {
                  "domestic_card": {
                    "type": "object",
                    "required": [
                      "basis_points",
                      "fixed_fee_cents"
                    ],
                    "properties": {
                      "basis_points": {
                        "type": "integer",
                        "enum": [
                          430
                        ]
                      },
                      "fixed_fee_cents": {
                        "type": "integer",
                        "enum": [
                          70
                        ]
                      }
                    }
                  },
                  "paynow": {
                    "type": "object",
                    "required": [
                      "basis_points",
                      "fixed_fee_cents"
                    ],
                    "properties": {
                      "basis_points": {
                        "type": "integer",
                        "enum": [
                          170
                        ]
                      },
                      "fixed_fee_cents": {
                        "type": "integer",
                        "enum": [
                          10
                        ]
                      }
                    }
                  }
                }
              },
              "marketplace_commission_basis_points": {
                "type": "integer",
                "enum": [
                  0
                ]
              },
              "standard_payout_fee_cents": {
                "type": "integer",
                "enum": [
                  0
                ]
              },
              "standard_payout_timing": {
                "type": "string",
                "enum": [
                  "T+30_calendar_days_after_payable_accrual"
                ]
              },
              "redaction_version": {
                "type": "string",
                "enum": [
                  "service_provider_payouts.v1"
                ]
              }
            }
          },
          "public_safety": {
            "type": "object",
            "required": [
              "customer_pii_returned",
              "card_details_returned",
              "stripe_secret_returned",
              "bank_account_returned",
              "raw_processor_payload_returned",
              "service_role_identifier_returned",
              "raw_provider_bank_documents_returned"
            ],
            "properties": {
              "customer_pii_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "card_details_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "stripe_secret_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "bank_account_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_processor_payload_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "service_role_identifier_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "raw_provider_bank_documents_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "authorization": {
            "$ref": "#/components/schemas/CurrentServiceProviderEarningsResponse/properties/authorization"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "ServiceProviderPayoutDetailResponse": {
        "type": "object",
        "required": [
          "payout",
          "line_items",
          "ledger_sources",
          "public_safety",
          "authorization",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "payout": {
            "$ref": "#/components/schemas/ServiceProviderPayout"
          },
          "line_items": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "payout_id",
                "source_type",
                "source_booking_reference",
                "description",
                "gross_booking_amount_cents",
                "platform_fee_cents",
                "net_amount_cents",
                "adjustment_cents",
                "refund_reversal_cents",
                "ledger_account_code",
                "accounting_reference"
              ],
              "description": "Public-safe payout line item linked to a services_transactions ledger entry. It exposes safe booking references and accounting IDs only; customer PII, bank details, card data, Stripe secrets, service-role identifiers, and raw processor payloads are not returned.",
              "properties": {
                "id": {
                  "type": "string"
                },
                "payout_id": {
                  "type": "string"
                },
                "source_type": {
                  "type": "string",
                  "enum": [
                    "booking_payable",
                    "refund_reversal",
                    "chargeback_reversal",
                    "manual_adjustment"
                  ]
                },
                "source_booking_reference": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "description": {
                  "type": "string"
                },
                "gross_booking_amount_cents": {
                  "type": "integer",
                  "minimum": 0
                },
                "platform_fee_cents": {
                  "type": "integer",
                  "minimum": 0
                },
                "net_amount_cents": {
                  "type": "integer"
                },
                "adjustment_cents": {
                  "type": "integer"
                },
                "refund_reversal_cents": {
                  "type": "integer",
                  "minimum": 0
                },
                "ledger_account_code": {
                  "type": "string",
                  "enum": [
                    "PROVIDER_ACCRUAL",
                    "PROVIDER_OFFSET"
                  ]
                },
                "accounting_reference": {
                  "type": "string"
                }
              }
            }
          },
          "ledger_sources": {
            "$ref": "#/components/schemas/ServiceProviderPayoutsResponse/properties/ledger_sources"
          },
          "public_safety": {
            "$ref": "#/components/schemas/ServiceProviderPayoutsResponse/properties/public_safety"
          },
          "authorization": {
            "$ref": "#/components/schemas/CurrentServiceProviderEarningsResponse/properties/authorization"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformSiteStatus": {
        "type": "string",
        "enum": [
          "draft",
          "review_requested",
          "approved",
          "published",
          "paused",
          "takedown_pending",
          "retracted",
          "archived"
        ]
      },
      "PlatformSiteTemplateId": {
        "type": "string",
        "enum": [
          "agency_microsite",
          "agent_landing_page",
          "service_provider_landing_page",
          "mortgage_partner_lead_page"
        ]
      },
      "PlatformSitePageType": {
        "type": "string",
        "enum": [
          "home",
          "listings",
          "lead_capture",
          "about",
          "contact"
        ]
      },
      "PlatformSiteFormType": {
        "type": "string",
        "enum": [
          "contact",
          "valuation",
          "mortgage_preapproval",
          "service_interest"
        ]
      },
      "PlatformSiteSummary": {
        "type": "object",
        "required": [
          "id",
          "sandbox_fixture_id",
          "site_slug",
          "display_name",
          "owner_type",
          "template_id",
          "template_version",
          "site_status",
          "public_route_path",
          "custom_domain_status",
          "content_safety_status",
          "allowed_origins",
          "updated_at",
          "livemode"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "sandbox_fixture_id": {
            "type": "string",
            "description": "Deterministic sandbox fixture ID; live site IDs remain unavailable."
          },
          "site_slug": {
            "type": "string"
          },
          "display_name": {
            "type": "string"
          },
          "owner_type": {
            "type": "string",
            "enum": [
              "individual_agent",
              "agency_organization",
              "service_provider",
              "mortgage_partner",
              "platform_ops"
            ]
          },
          "template_id": {
            "$ref": "#/components/schemas/PlatformSiteTemplateId"
          },
          "template_version": {
            "type": "string"
          },
          "site_status": {
            "$ref": "#/components/schemas/PlatformSiteStatus"
          },
          "public_route_path": {
            "type": [
              "string",
              "null"
            ]
          },
          "custom_domain_status": {
            "type": "string",
            "enum": [
              "deferred"
            ]
          },
          "content_safety_status": {
            "type": "string",
            "enum": [
              "passed"
            ]
          },
          "allowed_origins": {
            "type": "array",
            "items": {
              "type": "string",
              "format": "uri"
            }
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "PlatformSitePageSummary": {
        "type": "object",
        "required": [
          "id",
          "sandbox_fixture_id",
          "site_id",
          "page_slug",
          "title",
          "page_type",
          "publication_status",
          "route_path",
          "block_types",
          "content_safety_status",
          "seo_indexing",
          "rendered_preview",
          "side_effects",
          "livemode",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "sandbox_fixture_id": {
            "type": "string"
          },
          "site_id": {
            "type": "string"
          },
          "page_slug": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "page_type": {
            "$ref": "#/components/schemas/PlatformSitePageType"
          },
          "publication_status": {
            "$ref": "#/components/schemas/PlatformSiteStatus"
          },
          "route_path": {
            "type": [
              "string",
              "null"
            ]
          },
          "block_types": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Approved structured block types only; no partner-supplied scripts or raw HTML."
          },
          "content_safety_status": {
            "type": "string",
            "enum": [
              "passed"
            ]
          },
          "seo_indexing": {
            "type": "string",
            "enum": [
              "sandbox_noindex"
            ]
          },
          "rendered_preview": {
            "type": "string",
            "enum": [
              "deferred"
            ]
          },
          "side_effects": {
            "$ref": "#/components/schemas/PlatformSiteSideEffects"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformSiteSideEffects": {
        "type": "object",
        "required": [
          "email_sent",
          "sms_sent",
          "whatsapp_sent",
          "crm_write_performed",
          "calendar_write_performed",
          "payment_created",
          "distribution_mutated",
          "provider_call_performed"
        ],
        "properties": {
          "email_sent": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "sms_sent": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "whatsapp_sent": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "crm_write_performed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "calendar_write_performed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_created": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "distribution_mutated": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "provider_call_performed": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "PlatformSiteFormSummary": {
        "type": "object",
        "required": [
          "id",
          "sandbox_fixture_id",
          "site_id",
          "page_ids",
          "form_slug",
          "title",
          "form_type",
          "publication_status",
          "consent_text_version",
          "recipient_routing",
          "submission_storage",
          "crm_delivery",
          "content_safety_status",
          "side_effects",
          "livemode",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "sandbox_fixture_id": {
            "type": "string"
          },
          "site_id": {
            "type": "string"
          },
          "page_ids": {
            "type": "array",
            "items": {
              "type": "string"
            },
            "description": "Sandbox page IDs where the form metadata is attached."
          },
          "form_slug": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "form_type": {
            "$ref": "#/components/schemas/PlatformSiteFormType"
          },
          "publication_status": {
            "$ref": "#/components/schemas/PlatformSiteStatus"
          },
          "consent_text_version": {
            "type": "string"
          },
          "recipient_routing": {
            "type": "string",
            "enum": [
              "redacted"
            ]
          },
          "submission_storage": {
            "type": "string",
            "enum": [
              "deferred"
            ]
          },
          "crm_delivery": {
            "type": "string",
            "enum": [
              "deferred"
            ]
          },
          "content_safety_status": {
            "type": "string",
            "enum": [
              "passed"
            ]
          },
          "side_effects": {
            "$ref": "#/components/schemas/PlatformSiteSideEffects"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformSiteDomainSummary": {
        "type": "object",
        "required": [
          "id",
          "sandbox_fixture_id",
          "site_id",
          "requested_domain",
          "domain_status",
          "blocked_reason",
          "dns_management",
          "certificate_status",
          "validation_status",
          "rollback_status",
          "provider_call_performed",
          "livemode",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "sandbox_fixture_id": {
            "type": "string",
            "enum": [
              "custom_domain_request_blocked"
            ]
          },
          "site_id": {
            "type": "string"
          },
          "requested_domain": {
            "type": "string"
          },
          "domain_status": {
            "type": "string",
            "enum": [
              "blocked"
            ]
          },
          "blocked_reason": {
            "type": "string",
            "enum": [
              "custom_domain_deferred_until_tofu_dns_cdn_certificate_rollback"
            ]
          },
          "dns_management": {
            "type": "string",
            "enum": [
              "tofu_required"
            ]
          },
          "certificate_status": {
            "type": "string",
            "enum": [
              "not_requested"
            ]
          },
          "validation_status": {
            "type": "string",
            "enum": [
              "not_started"
            ]
          },
          "rollback_status": {
            "type": "string",
            "enum": [
              "not_ready"
            ]
          },
          "provider_call_performed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformSiteListResponse": {
        "type": "object",
        "required": [
          "sites",
          "pagination",
          "livemode",
          "request_id"
        ],
        "properties": {
          "sites": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformSiteSummary"
            }
          },
          "pagination": {
            "type": "object",
            "required": [
              "limit",
              "next_cursor"
            ],
            "properties": {
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              },
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformSitePagesResponse": {
        "type": "object",
        "required": [
          "site",
          "pages",
          "pagination",
          "livemode",
          "request_id"
        ],
        "properties": {
          "site": {
            "$ref": "#/components/schemas/PlatformSiteSummary"
          },
          "pages": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformSitePageSummary"
            }
          },
          "pagination": {
            "type": "object",
            "required": [
              "limit",
              "next_cursor"
            ],
            "properties": {
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              },
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformSiteFormsResponse": {
        "type": "object",
        "required": [
          "site",
          "forms",
          "pagination",
          "livemode",
          "request_id"
        ],
        "properties": {
          "site": {
            "$ref": "#/components/schemas/PlatformSiteSummary"
          },
          "forms": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformSiteFormSummary"
            }
          },
          "pagination": {
            "type": "object",
            "required": [
              "limit",
              "next_cursor"
            ],
            "properties": {
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              },
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformSiteDomainsResponse": {
        "type": "object",
        "required": [
          "site",
          "domains",
          "custom_domain_setup",
          "livemode",
          "request_id"
        ],
        "properties": {
          "site": {
            "$ref": "#/components/schemas/PlatformSiteSummary"
          },
          "domains": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformSiteDomainSummary"
            }
          },
          "custom_domain_setup": {
            "type": "object",
            "required": [
              "status",
              "tofu_managed_dns_required",
              "certificate_validation_required",
              "rollback_smoke_required",
              "provider_call_performed"
            ],
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              },
              "tofu_managed_dns_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "certificate_validation_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "rollback_smoke_required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "provider_call_performed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformSiteDetail": {
        "allOf": [
          {
            "$ref": "#/components/schemas/PlatformSiteSummary"
          },
          {
            "type": "object",
            "required": [
              "publication",
              "safety",
              "integrations",
              "side_effects"
            ],
            "properties": {
              "publication": {
                "type": "object",
                "required": [
                  "current_publication_id",
                  "current_publication_status",
                  "hosted_route_path",
                  "custom_domain_status",
                  "rollback_supported"
                ],
                "properties": {
                  "current_publication_id": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "current_publication_status": {
                    "$ref": "#/components/schemas/PlatformSiteStatus"
                  },
                  "hosted_route_path": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "custom_domain_status": {
                    "type": "string",
                    "enum": [
                      "deferred"
                    ]
                  },
                  "rollback_supported": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              },
              "safety": {
                "type": "object",
                "required": [
                  "status",
                  "partner_scripts",
                  "direct_html",
                  "hidden_form_destinations",
                  "third_party_pixels",
                  "secrets"
                ],
                "properties": {
                  "status": {
                    "type": "string",
                    "enum": [
                      "passed"
                    ]
                  },
                  "partner_scripts": {
                    "type": "string",
                    "enum": [
                      "blocked"
                    ]
                  },
                  "direct_html": {
                    "type": "string",
                    "enum": [
                      "blocked"
                    ]
                  },
                  "hidden_form_destinations": {
                    "type": "string",
                    "enum": [
                      "blocked"
                    ]
                  },
                  "third_party_pixels": {
                    "type": "string",
                    "enum": [
                      "blocked"
                    ]
                  },
                  "secrets": {
                    "type": "string",
                    "enum": [
                      "redacted"
                    ]
                  }
                }
              },
              "integrations": {
                "type": "object",
                "required": [
                  "forms",
                  "listing_collection_widget",
                  "scheduling_widget",
                  "crm_delivery"
                ],
                "properties": {
                  "forms": {
                    "type": "string",
                    "enum": [
                      "deferred"
                    ]
                  },
                  "listing_collection_widget": {
                    "type": "string",
                    "enum": [
                      "deferred"
                    ]
                  },
                  "scheduling_widget": {
                    "type": "string",
                    "enum": [
                      "deferred"
                    ]
                  },
                  "crm_delivery": {
                    "type": "string",
                    "enum": [
                      "deferred"
                    ]
                  }
                }
              },
              "side_effects": {
                "$ref": "#/components/schemas/PlatformSiteSideEffects"
              }
            }
          }
        ]
      },
      "PlatformSiteDetailResponse": {
        "type": "object",
        "required": [
          "site",
          "livemode",
          "request_id"
        ],
        "properties": {
          "site": {
            "$ref": "#/components/schemas/PlatformSiteDetail"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "TransactionMatterListResponse": {
        "type": "object",
        "required": [
          "matters",
          "access",
          "livemode",
          "request_id"
        ],
        "properties": {
          "matters": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "matter_id",
                "fixture_id",
                "primary_party_role",
                "matter_state",
                "public_status_label",
                "law_firm_assignment_present",
                "party_access_model_present",
                "document_manifest_count",
                "stamp_duty_status",
                "sandbox_fixture_backed",
                "unsafe_fields_exposed"
              ],
              "description": "Public-safe transaction/conveyancing matter summary. Raw party PII, private notes, legal documents, service-role metadata, and unrelated partner records are not returned.",
              "properties": {
                "matter_id": {
                  "type": "string"
                },
                "fixture_id": {
                  "type": "string"
                },
                "primary_party_role": {
                  "type": "string",
                  "enum": [
                    "buyer",
                    "seller"
                  ]
                },
                "matter_state": {
                  "type": "string",
                  "enum": [
                    "in_progress",
                    "pending_lawyer",
                    "completed",
                    "cancelled",
                    "disputed"
                  ]
                },
                "public_status_label": {
                  "type": "string"
                },
                "law_firm_assignment_present": {
                  "type": "boolean",
                  "enum": [
                    true
                  ]
                },
                "party_access_model_present": {
                  "type": "boolean",
                  "enum": [
                    true
                  ]
                },
                "document_manifest_count": {
                  "type": "integer",
                  "minimum": 0
                },
                "stamp_duty_status": {
                  "type": "string",
                  "enum": [
                    "pending",
                    "paid",
                    "overdue"
                  ]
                },
                "sandbox_fixture_backed": {
                  "type": "boolean",
                  "enum": [
                    true
                  ]
                },
                "unsafe_fields_exposed": {
                  "type": "boolean",
                  "enum": [
                    false
                  ]
                }
              }
            }
          },
          "access": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "granted_transaction_scopes",
              "actor_model",
              "sandbox_fixture_mode",
              "marketplace_orchestration_only",
              "advice_boundary_enforced",
              "client_money_handling_deferred",
              "private_pilot_status_posture",
              "live_transaction_mutation",
              "document_handoff_url_issuance",
              "legal_or_tax_action_returned"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_transaction_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "actor_model": {
                "type": "string",
                "enum": [
                  "api_key_automation_client"
                ]
              },
              "sandbox_fixture_mode": {
                "type": "string",
                "enum": [
                  "read_only"
                ]
              },
              "marketplace_orchestration_only": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "advice_boundary_enforced": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "client_money_handling_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "private_pilot_status_posture": {
                "type": "string",
                "enum": [
                  "private_first"
                ]
              },
              "live_transaction_mutation": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              },
              "document_handoff_url_issuance": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              },
              "legal_or_tax_action_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "TransactionMatterDetailResponse": {
        "type": "object",
        "required": [
          "matter",
          "access",
          "livemode",
          "request_id"
        ],
        "properties": {
          "matter": {
            "allOf": [
              {
                "type": "object",
                "required": [
                  "matter_id",
                  "fixture_id",
                  "primary_party_role",
                  "matter_state",
                  "public_status_label",
                  "law_firm_assignment_present",
                  "party_access_model_present",
                  "document_manifest_count",
                  "stamp_duty_status",
                  "sandbox_fixture_backed",
                  "unsafe_fields_exposed"
                ],
                "description": "Public-safe transaction/conveyancing matter summary. Raw party PII, private notes, legal documents, service-role metadata, and unrelated partner records are not returned.",
                "properties": {
                  "matter_id": {
                    "type": "string"
                  },
                  "fixture_id": {
                    "type": "string"
                  },
                  "primary_party_role": {
                    "type": "string",
                    "enum": [
                      "buyer",
                      "seller"
                    ]
                  },
                  "matter_state": {
                    "type": "string",
                    "enum": [
                      "in_progress",
                      "pending_lawyer",
                      "completed",
                      "cancelled",
                      "disputed"
                    ]
                  },
                  "public_status_label": {
                    "type": "string"
                  },
                  "law_firm_assignment_present": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "party_access_model_present": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "document_manifest_count": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "stamp_duty_status": {
                    "type": "string",
                    "enum": [
                      "pending",
                      "paid",
                      "overdue"
                    ]
                  },
                  "sandbox_fixture_backed": {
                    "type": "boolean",
                    "enum": [
                      true
                    ]
                  },
                  "unsafe_fields_exposed": {
                    "type": "boolean",
                    "enum": [
                      false
                    ]
                  }
                }
              },
              {
                "type": "object",
                "required": [
                  "documents",
                  "stamp_duty",
                  "allowed_first_slice_actions",
                  "blocked_first_slice_actions"
                ],
                "properties": {
                  "documents": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "document_id",
                        "fixture_id",
                        "status",
                        "classification",
                        "redacted_filename",
                        "manifest_reference",
                        "handoff_reference",
                        "handoff_status",
                        "redacted_manifest_only",
                        "document_contents_returned",
                        "hidden_path_returned",
                        "permanent_link_returned",
                        "private_notes_returned"
                      ],
                      "description": "Redacted document manifest metadata only. Raw document contents, hidden storage paths, permanent links, private legal notes, and privileged communications are not returned.",
                      "properties": {
                        "document_id": {
                          "type": "string"
                        },
                        "fixture_id": {
                          "type": "string"
                        },
                        "status": {
                          "type": "string",
                          "enum": [
                            "requested",
                            "expired"
                          ]
                        },
                        "classification": {
                          "type": "string",
                          "enum": [
                            "private",
                            "regulated"
                          ]
                        },
                        "redacted_filename": {
                          "type": "string"
                        },
                        "manifest_reference": {
                          "type": "string"
                        },
                        "handoff_reference": {
                          "type": [
                            "string",
                            "null"
                          ]
                        },
                        "handoff_status": {
                          "type": "string",
                          "enum": [
                            "requested",
                            "blocked",
                            "expired"
                          ]
                        },
                        "redacted_manifest_only": {
                          "type": "boolean",
                          "enum": [
                            true
                          ]
                        },
                        "document_contents_returned": {
                          "type": "boolean",
                          "enum": [
                            false
                          ]
                        },
                        "hidden_path_returned": {
                          "type": "boolean",
                          "enum": [
                            false
                          ]
                        },
                        "permanent_link_returned": {
                          "type": "boolean",
                          "enum": [
                            false
                          ]
                        },
                        "private_notes_returned": {
                          "type": "boolean",
                          "enum": [
                            false
                          ]
                        }
                      }
                    }
                  },
                  "stamp_duty": {
                    "type": "object",
                    "required": [
                      "stamp_duty_id",
                      "fixture_id",
                      "status",
                      "source_metadata_present",
                      "coordination_metadata_only",
                      "e_stamping_submitted",
                      "legal_or_tax_action_returned",
                      "platform_estimate_presented_as_final"
                    ],
                    "description": "Stamp-duty coordination state only. This does not submit e-stamping, provide legal or tax advice, or present platform estimates as final.",
                    "properties": {
                      "stamp_duty_id": {
                        "type": "string"
                      },
                      "fixture_id": {
                        "type": "string"
                      },
                      "status": {
                        "type": "string",
                        "enum": [
                          "pending",
                          "paid",
                          "overdue"
                        ]
                      },
                      "source_metadata_present": {
                        "type": "boolean",
                        "enum": [
                          true
                        ]
                      },
                      "coordination_metadata_only": {
                        "type": "boolean",
                        "enum": [
                          true
                        ]
                      },
                      "e_stamping_submitted": {
                        "type": "boolean",
                        "enum": [
                          false
                        ]
                      },
                      "legal_or_tax_action_returned": {
                        "type": "boolean",
                        "enum": [
                          false
                        ]
                      },
                      "platform_estimate_presented_as_final": {
                        "type": "boolean",
                        "enum": [
                          false
                        ]
                      }
                    }
                  },
                  "allowed_first_slice_actions": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  },
                  "blocked_first_slice_actions": {
                    "type": "array",
                    "items": {
                      "type": "string"
                    }
                  }
                }
              }
            ]
          },
          "access": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "granted_transaction_scopes",
              "actor_model",
              "sandbox_fixture_mode",
              "marketplace_orchestration_only",
              "advice_boundary_enforced",
              "client_money_handling_deferred",
              "private_pilot_status_posture",
              "live_transaction_mutation",
              "document_handoff_url_issuance",
              "legal_or_tax_action_returned"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_transaction_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "actor_model": {
                "type": "string",
                "enum": [
                  "api_key_automation_client"
                ]
              },
              "sandbox_fixture_mode": {
                "type": "string",
                "enum": [
                  "read_only"
                ]
              },
              "marketplace_orchestration_only": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "advice_boundary_enforced": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "client_money_handling_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "private_pilot_status_posture": {
                "type": "string",
                "enum": [
                  "private_first"
                ]
              },
              "live_transaction_mutation": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              },
              "document_handoff_url_issuance": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              },
              "legal_or_tax_action_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "TransactionDocumentManifestResponse": {
        "type": "object",
        "required": [
          "matter_id",
          "documents",
          "access",
          "livemode",
          "request_id"
        ],
        "properties": {
          "matter_id": {
            "type": "string"
          },
          "documents": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "document_id",
                "fixture_id",
                "status",
                "classification",
                "redacted_filename",
                "manifest_reference",
                "handoff_reference",
                "handoff_status",
                "redacted_manifest_only",
                "document_contents_returned",
                "hidden_path_returned",
                "permanent_link_returned",
                "private_notes_returned"
              ],
              "description": "Redacted document manifest metadata only. Raw document contents, hidden storage paths, permanent links, private legal notes, and privileged communications are not returned.",
              "properties": {
                "document_id": {
                  "type": "string"
                },
                "fixture_id": {
                  "type": "string"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "requested",
                    "expired"
                  ]
                },
                "classification": {
                  "type": "string",
                  "enum": [
                    "private",
                    "regulated"
                  ]
                },
                "redacted_filename": {
                  "type": "string"
                },
                "manifest_reference": {
                  "type": "string"
                },
                "handoff_reference": {
                  "type": [
                    "string",
                    "null"
                  ]
                },
                "handoff_status": {
                  "type": "string",
                  "enum": [
                    "requested",
                    "blocked",
                    "expired"
                  ]
                },
                "redacted_manifest_only": {
                  "type": "boolean",
                  "enum": [
                    true
                  ]
                },
                "document_contents_returned": {
                  "type": "boolean",
                  "enum": [
                    false
                  ]
                },
                "hidden_path_returned": {
                  "type": "boolean",
                  "enum": [
                    false
                  ]
                },
                "permanent_link_returned": {
                  "type": "boolean",
                  "enum": [
                    false
                  ]
                },
                "private_notes_returned": {
                  "type": "boolean",
                  "enum": [
                    false
                  ]
                }
              }
            }
          },
          "access": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "granted_transaction_scopes",
              "actor_model",
              "sandbox_fixture_mode",
              "marketplace_orchestration_only",
              "advice_boundary_enforced",
              "client_money_handling_deferred",
              "private_pilot_status_posture",
              "live_transaction_mutation",
              "document_handoff_url_issuance",
              "legal_or_tax_action_returned"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_transaction_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "actor_model": {
                "type": "string",
                "enum": [
                  "api_key_automation_client"
                ]
              },
              "sandbox_fixture_mode": {
                "type": "string",
                "enum": [
                  "read_only"
                ]
              },
              "marketplace_orchestration_only": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "advice_boundary_enforced": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "client_money_handling_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "private_pilot_status_posture": {
                "type": "string",
                "enum": [
                  "private_first"
                ]
              },
              "live_transaction_mutation": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              },
              "document_handoff_url_issuance": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              },
              "legal_or_tax_action_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "TransactionStampDutyResponse": {
        "type": "object",
        "required": [
          "matter_id",
          "stamp_duty",
          "access",
          "livemode",
          "request_id"
        ],
        "properties": {
          "matter_id": {
            "type": "string"
          },
          "stamp_duty": {
            "type": "object",
            "required": [
              "stamp_duty_id",
              "fixture_id",
              "status",
              "source_metadata_present",
              "coordination_metadata_only",
              "e_stamping_submitted",
              "legal_or_tax_action_returned",
              "platform_estimate_presented_as_final"
            ],
            "description": "Stamp-duty coordination state only. This does not submit e-stamping, provide legal or tax advice, or present platform estimates as final.",
            "properties": {
              "stamp_duty_id": {
                "type": "string"
              },
              "fixture_id": {
                "type": "string"
              },
              "status": {
                "type": "string",
                "enum": [
                  "pending",
                  "paid",
                  "overdue"
                ]
              },
              "source_metadata_present": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "coordination_metadata_only": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "e_stamping_submitted": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "legal_or_tax_action_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "platform_estimate_presented_as_final": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "access": {
            "type": "object",
            "required": [
              "organization_id",
              "client_id",
              "granted_transaction_scopes",
              "actor_model",
              "sandbox_fixture_mode",
              "marketplace_orchestration_only",
              "advice_boundary_enforced",
              "client_money_handling_deferred",
              "private_pilot_status_posture",
              "live_transaction_mutation",
              "document_handoff_url_issuance",
              "legal_or_tax_action_returned"
            ],
            "properties": {
              "organization_id": {
                "type": "string",
                "format": "uuid"
              },
              "client_id": {
                "type": "string",
                "format": "uuid"
              },
              "granted_transaction_scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "actor_model": {
                "type": "string",
                "enum": [
                  "api_key_automation_client"
                ]
              },
              "sandbox_fixture_mode": {
                "type": "string",
                "enum": [
                  "read_only"
                ]
              },
              "marketplace_orchestration_only": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "advice_boundary_enforced": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "client_money_handling_deferred": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "private_pilot_status_posture": {
                "type": "string",
                "enum": [
                  "private_first"
                ]
              },
              "live_transaction_mutation": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              },
              "document_handoff_url_issuance": {
                "type": "string",
                "enum": [
                  "deferred"
                ]
              },
              "legal_or_tax_action_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "TransactionConveyancingPrepareRequest": {
        "type": "object",
        "additionalProperties": false,
        "required": [
          "action",
          "confirm_prepare"
        ],
        "properties": {
          "action": {
            "type": "string",
            "enum": [
              "prepare_matter_update_draft",
              "prepare_document_request_checklist"
            ]
          },
          "confirm_prepare": {
            "type": "boolean",
            "enum": [
              true
            ],
            "description": "Must be true to prepare review-only sandbox output."
          }
        }
      },
      "TransactionConveyancingPrepareResponse": {
        "type": "object",
        "required": [
          "ok",
          "action",
          "action_id",
          "status",
          "required_scope",
          "idempotency_required",
          "matter",
          "prepared_output",
          "professional_review",
          "side_effects",
          "livemode",
          "request_id"
        ],
        "properties": {
          "ok": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "action": {
            "type": "string",
            "enum": [
              "prepare_matter_update_draft",
              "prepare_document_request_checklist"
            ]
          },
          "action_id": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "prepared"
            ]
          },
          "required_scope": {
            "type": "string",
            "enum": [
              "conveyancing.matters.write"
            ]
          },
          "idempotency_required": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "matter": {
            "type": "object",
            "required": [
              "matter_id",
              "fixture_id",
              "matter_state",
              "source"
            ],
            "properties": {
              "matter_id": {
                "type": "string"
              },
              "fixture_id": {
                "type": "string"
              },
              "matter_state": {
                "type": "string",
                "enum": [
                  "in_progress",
                  "pending_lawyer",
                  "disputed"
                ]
              },
              "source": {
                "type": "string",
                "enum": [
                  "sandbox_fixture"
                ]
              }
            }
          },
          "prepared_output": {
            "oneOf": [
              {
                "type": "object",
                "required": [
                  "kind",
                  "headline",
                  "matter_state",
                  "draft_points"
                ],
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "matter_update_draft"
                    ]
                  },
                  "headline": {
                    "type": "string"
                  },
                  "matter_state": {
                    "type": "string",
                    "enum": [
                      "in_progress",
                      "pending_lawyer",
                      "disputed"
                    ]
                  },
                  "draft_points": {
                    "type": "array",
                    "minItems": 3,
                    "maxItems": 3,
                    "items": {
                      "type": "string"
                    }
                  }
                }
              },
              {
                "type": "object",
                "required": [
                  "kind",
                  "headline",
                  "checklist_items"
                ],
                "properties": {
                  "kind": {
                    "type": "string",
                    "enum": [
                      "document_request_checklist"
                    ]
                  },
                  "headline": {
                    "type": "string"
                  },
                  "checklist_items": {
                    "type": "array",
                    "items": {
                      "type": "object",
                      "required": [
                        "category",
                        "review_state",
                        "source_documents_included"
                      ],
                      "properties": {
                        "category": {
                          "type": "string",
                          "enum": [
                            "matter_authority",
                            "transaction_documents",
                            "stamp_duty_coordination"
                          ]
                        },
                        "review_state": {
                          "type": "string",
                          "enum": [
                            "responsible_lawyer_review_required"
                          ]
                        },
                        "source_documents_included": {
                          "type": "boolean",
                          "enum": [
                            false
                          ]
                        }
                      }
                    }
                  }
                }
              }
            ]
          },
          "professional_review": {
            "type": "object",
            "required": [
              "required",
              "reviewer_role",
              "confirmation_route_exposed",
              "execution_route_exposed"
            ],
            "properties": {
              "required": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "reviewer_role": {
                "type": "string",
                "enum": [
                  "responsible_lawyer"
                ]
              },
              "confirmation_route_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "execution_route_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "side_effects": {
            "type": "object",
            "required": [
              "matter_mutated",
              "document_submitted",
              "e_stamping_submitted",
              "funds_released",
              "client_money_handled",
              "external_system_calls",
              "sensitive_fields_exposed",
              "legal_or_tax_action_returned"
            ],
            "properties": {
              "matter_mutated": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "document_submitted": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "e_stamping_submitted": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "funds_released": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "client_money_handled": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "external_system_calls": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "sensitive_fields_exposed": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "legal_or_tax_action_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "UsageSummaryResponse": {
        "type": "object",
        "required": [
          "summaries",
          "summary",
          "authorization",
          "public_safety",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "summaries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/UsageSummaryItem"
            }
          },
          "summary": {
            "$ref": "#/components/schemas/UsageSummaryAggregate"
          },
          "authorization": {
            "$ref": "#/components/schemas/UsageSummaryAuthorization"
          },
          "public_safety": {
            "$ref": "#/components/schemas/UsageSummaryPublicSafety"
          },
          "principal": {
            "$ref": "#/components/schemas/CurrentOrganizationResponse/properties/principal"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "UsageSummaryItem": {
        "type": "object",
        "required": [
          "module_id",
          "label",
          "workspace_root",
          "plan_state",
          "billing_owner",
          "invoice_contact",
          "billing_period",
          "usage_unit",
          "included_units",
          "used_units",
          "billable_units",
          "quota_state",
          "invoice_state",
          "overage_review_state",
          "automatic_overage_enforcement_allowed",
          "invoice_external_send_allowed",
          "payment_collection_allowed",
          "usage_summary_test_id",
          "usage_event_id",
          "usage_event_status",
          "usage_event_surface",
          "usage_event_route_or_tool",
          "usage_event_quantity",
          "source_event_count",
          "reconciliation_status",
          "billing_exclusion_reason",
          "observe_only_mode",
          "allowed_actions",
          "blocked_actions",
          "raw_usage_event_payload_visible",
          "raw_payment_payload_visible",
          "quota_enforcement_allowed",
          "credential_suspension_allowed",
          "proof_command",
          "evidence_path",
          "launch_ready",
          "blocker",
          "next_action"
        ],
        "properties": {
          "module_id": {
            "type": "string",
            "enum": [
              "agent",
              "agency",
              "business",
              "mortgage",
              "legal",
              "developer",
              "renovation"
            ]
          },
          "label": {
            "type": "string"
          },
          "workspace_root": {
            "type": "string"
          },
          "plan_state": {
            "type": "string",
            "enum": [
              "restricted_workspace_observe_only"
            ]
          },
          "billing_owner": {
            "type": "string"
          },
          "invoice_contact": {
            "type": "string",
            "format": "email"
          },
          "billing_period": {
            "type": "string"
          },
          "usage_unit": {
            "type": "string",
            "enum": [
              "api_call",
              "tool_call",
              "cli_call",
              "webhook_delivery",
              "webhook_replay",
              "site_view",
              "lead_submission",
              "schedule_request",
              "crm_delivery",
              "storage_gb_month",
              "signed_url",
              "document_scan",
              "source_refresh",
              "source_snapshot",
              "sandbox_reset",
              "certification_review",
              "marketplace_install"
            ]
          },
          "included_units": {
            "type": "integer",
            "minimum": 0
          },
          "used_units": {
            "type": "integer",
            "minimum": 0
          },
          "billable_units": {
            "type": "integer",
            "minimum": 0
          },
          "quota_state": {
            "type": "string",
            "enum": [
              "observe",
              "warning",
              "soft_block",
              "hard_block",
              "suspended"
            ]
          },
          "invoice_state": {
            "type": "string",
            "enum": [
              "draft",
              "review_required",
              "approved",
              "issued",
              "paid",
              "partially_paid",
              "voided",
              "credited",
              "disputed",
              "uncollectible"
            ]
          },
          "overage_review_state": {
            "type": "string",
            "enum": [
              "manual_review_required"
            ]
          },
          "automatic_overage_enforcement_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "invoice_external_send_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_collection_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "usage_summary_test_id": {
            "type": "string"
          },
          "usage_event_id": {
            "type": "string"
          },
          "usage_event_status": {
            "type": "string",
            "enum": [
              "succeeded",
              "failed",
              "excluded"
            ]
          },
          "usage_event_surface": {
            "type": "string",
            "enum": [
              "rest_api",
              "mcp",
              "cli",
              "webhook",
              "hosted_site",
              "widget",
              "official_source",
              "document_handoff",
              "admin_action"
            ]
          },
          "usage_event_route_or_tool": {
            "type": "string"
          },
          "usage_event_quantity": {
            "type": "number",
            "minimum": 0
          },
          "source_event_count": {
            "type": "integer",
            "minimum": 0
          },
          "reconciliation_status": {
            "type": "string",
            "enum": [
              "pending",
              "matched",
              "mismatch",
              "adjusted",
              "approved",
              "locked"
            ]
          },
          "billing_exclusion_reason": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "free_allowance",
              "sandbox",
              "test_fixture",
              "duplicate",
              "failed_before_chargeable_work",
              "manual_adjustment",
              "internal_first_party",
              "enterprise_exception",
              null
            ]
          },
          "observe_only_mode": {
            "type": "string",
            "enum": [
              "observe_only"
            ]
          },
          "allowed_actions": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "usage_event_capture",
                "usage_rollup_generation",
                "quota_warning",
                "draft_invoice_generation",
                "admin_reconciliation_review"
              ]
            }
          },
          "blocked_actions": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "automatic_overage_billing",
                "quota_enforcement",
                "invoice_sending",
                "payment_collection",
                "credential_suspension",
                "scope_downgrade"
              ]
            }
          },
          "raw_usage_event_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_payment_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "quota_enforcement_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credential_suspension_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "proof_command": {
            "type": "string"
          },
          "evidence_path": {
            "type": "string"
          },
          "launch_ready": {
            "type": "boolean"
          },
          "blocker": {
            "type": [
              "string",
              "null"
            ]
          },
          "next_action": {
            "type": "string"
          }
        }
      },
      "UsageSummaryAggregate": {
        "type": "object",
        "required": [
          "total_verticals",
          "plan_state_visible",
          "billing_owner_visible",
          "invoice_contact_visible",
          "billing_owner_visibility_gates",
          "partner_billing_table_reads_deferred",
          "usage_events_present",
          "customer_visible_usage_summaries",
          "automatic_overage_enforcement_blocked",
          "billing_owner_gate_side_effects_blocked",
          "launch_ready_contracts",
          "source_contract",
          "usage_read_model",
          "billing_write_model"
        ],
        "properties": {
          "total_verticals": {
            "type": "integer",
            "minimum": 0
          },
          "plan_state_visible": {
            "type": "integer",
            "minimum": 0
          },
          "billing_owner_visible": {
            "type": "integer",
            "minimum": 0
          },
          "invoice_contact_visible": {
            "type": "integer",
            "minimum": 0
          },
          "billing_owner_visibility_gates": {
            "type": "integer",
            "minimum": 0
          },
          "partner_billing_table_reads_deferred": {
            "type": "integer",
            "minimum": 0
          },
          "usage_events_present": {
            "type": "integer",
            "minimum": 0
          },
          "customer_visible_usage_summaries": {
            "type": "integer",
            "minimum": 0
          },
          "automatic_overage_enforcement_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "billing_owner_gate_side_effects_blocked": {
            "type": "integer",
            "minimum": 0
          },
          "launch_ready_contracts": {
            "type": "integer",
            "minimum": 0
          },
          "source_contract": {
            "type": "string",
            "enum": [
              "vertical_billing_usage_contract"
            ]
          },
          "usage_read_model": {
            "type": "string",
            "enum": [
              "customer_visible_contract_no_usage_event_table_reads"
            ]
          },
          "billing_write_model": {
            "type": "string",
            "enum": [
              "observe_only_no_invoice_or_payment_side_effects"
            ]
          }
        }
      },
      "UsageSummaryAuthorization": {
        "type": "object",
        "required": [
          "organization_id",
          "client_id",
          "api_key_id",
          "required_scope",
          "granted_billing_scopes",
          "actor_model",
          "data_access",
          "table_access",
          "mutation_access"
        ],
        "properties": {
          "organization_id": {
            "type": "string",
            "format": "uuid"
          },
          "client_id": {
            "type": "string",
            "format": "uuid"
          },
          "api_key_id": {
            "type": "string",
            "format": "uuid"
          },
          "required_scope": {
            "type": "string",
            "enum": [
              "platform.billing_owner_visibility.read"
            ]
          },
          "granted_billing_scopes": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformScope"
            }
          },
          "actor_model": {
            "type": "string",
            "enum": [
              "api_key_automation_client"
            ]
          },
          "data_access": {
            "type": "string",
            "enum": [
              "customer_visible_usage_summary_contract_only"
            ]
          },
          "table_access": {
            "type": "string",
            "enum": [
              "no_usage_event_or_partner_billing_table_reads"
            ]
          },
          "mutation_access": {
            "type": "string",
            "enum": [
              "usage_billing_writes_deferred"
            ]
          }
        }
      },
      "UsageSummaryPublicSafety": {
        "type": "object",
        "required": [
          "usage_event_table_reads_allowed",
          "partner_billing_table_reads_allowed",
          "raw_usage_event_payload_visible",
          "raw_payment_payload_visible",
          "invoice_external_send_allowed",
          "payment_collection_allowed",
          "quota_enforcement_allowed",
          "credential_suspension_allowed",
          "external_finance_calls",
          "billing_write_mutations_enabled"
        ],
        "properties": {
          "usage_event_table_reads_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "partner_billing_table_reads_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_usage_event_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_payment_payload_visible": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "invoice_external_send_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payment_collection_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "quota_enforcement_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credential_suspension_allowed": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "external_finance_calls": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "billing_write_mutations_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        }
      },
      "PlatformWebhookEventType": {
        "type": "string",
        "enum": [
          "listing.updated",
          "viewing.requested",
          "viewing.status_changed",
          "agent.lead_created",
          "agent.lead_status_changed",
          "agency.member_changed",
          "agency.listing_distribution_changed",
          "listing_feed.status_changed",
          "site.published",
          "site.form_submitted",
          "site.scheduling_requested",
          "site.crm_delivery_failed",
          "developer.project_published",
          "developer.inventory_updated",
          "developer.price_list_published",
          "developer.showflat_requested",
          "developer.crm_delivery_failed",
          "bank.application_created",
          "bank.document_requested",
          "bank.document_uploaded",
          "bank.application_submitted",
          "bank.status_changed",
          "bank.callback_failed",
          "official_source.refresh_started",
          "official_source.refresh_completed",
          "official_source.refresh_failed",
          "official_source.schema_changed",
          "official_source.freshness_degraded",
          "service.booking_status_changed",
          "service.payment_succeeded",
          "service.payment_failed",
          "provider.payable_created",
          "provider.payout_scheduled",
          "provider.payout_paid",
          "provider.payout_failed",
          "service.refund_created",
          "service.chargeback_opened",
          "service.settlement_adjusted",
          "service.settlement_reconciled",
          "finance.application_status_changed",
          "transaction.matter_created",
          "transaction.milestone_changed",
          "transaction.document_requested",
          "transaction.document_shared",
          "conveyancing.matter_status_changed",
          "partner.certification_submitted",
          "partner.certification_approved",
          "integration.installed",
          "integration.revoked",
          "consent.granted",
          "consent.revoked",
          "data_dispute.opened",
          "data_dispute.resolved",
          "usage.quota_exceeded",
          "billing.invoice_created",
          "abuse.credential_suspended",
          "api.deprecation_notice_created"
        ],
        "description": "Additive platform webhook event type. Event-specific payload DTOs are added only when a workflow route or deterministic sandbox producer can back the contract."
      },
      "PlatformWebhookEnvelope": {
        "type": "object",
        "required": [
          "id",
          "type",
          "created_at",
          "livemode",
          "api_version",
          "data",
          "request_id"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "type": {
            "$ref": "#/components/schemas/PlatformWebhookEventType"
          },
          "version": {
            "type": "string",
            "description": "Event-specific payload DTO version when the producer publishes a versioned contract.",
            "example": "platform.viewing_requested.v1"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "livemode": {
            "type": "boolean"
          },
          "api_version": {
            "type": "string",
            "example": "2026-05-15"
          },
          "data": {
            "oneOf": [
              {
                "$ref": "#/components/schemas/PlatformListingUpdatedWebhookData"
              },
              {
                "$ref": "#/components/schemas/PlatformViewingRequestedWebhookData"
              },
              {
                "$ref": "#/components/schemas/PlatformViewingStatusChangedWebhookData"
              },
              {
                "$ref": "#/components/schemas/PlatformListingFeedStatusChangedWebhookData"
              },
              {
                "$ref": "#/components/schemas/PlatformDeveloperShowflatRequestedWebhookData"
              },
              {
                "$ref": "#/components/schemas/PlatformBankApplicationCreatedWebhookData"
              },
              {
                "$ref": "#/components/schemas/PlatformBankStatusChangedWebhookData"
              },
              {
                "$ref": "#/components/schemas/PlatformBankCallbackFailedWebhookData"
              },
              {
                "$ref": "#/components/schemas/PlatformServicePaymentSucceededWebhookData"
              },
              {
                "$ref": "#/components/schemas/PlatformServicePaymentFailedWebhookData"
              },
              {
                "$ref": "#/components/schemas/PlatformProviderPayableCreatedWebhookData"
              },
              {
                "$ref": "#/components/schemas/PlatformProviderPayoutScheduledWebhookData"
              },
              {
                "$ref": "#/components/schemas/PlatformProviderPayoutPaidWebhookData"
              },
              {
                "$ref": "#/components/schemas/PlatformProviderPayoutFailedWebhookData"
              },
              {
                "$ref": "#/components/schemas/PlatformServiceRefundCreatedWebhookData"
              },
              {
                "$ref": "#/components/schemas/PlatformServiceChargebackOpenedWebhookData"
              },
              {
                "type": "object",
                "additionalProperties": true
              }
            ],
            "description": "Public-safe event payload. Raw secrets, raw contact exports, private documents, and routing internals are never included."
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformListingUpdatedWebhookData": {
        "type": "object",
        "required": [
          "object",
          "listing_id",
          "public_reference",
          "change_type",
          "changed_fields"
        ],
        "properties": {
          "object": {
            "type": "string",
            "enum": [
              "listing"
            ]
          },
          "listing_id": {
            "type": "string"
          },
          "public_reference": {
            "type": "string"
          },
          "change_type": {
            "type": "string",
            "enum": [
              "created",
              "updated",
              "deleted"
            ]
          },
          "changed_fields": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "listing": {
            "type": "object",
            "additionalProperties": true,
            "description": "Public-safe listing projection. Source-agent contact metadata and private evidence are omitted."
          },
          "test_mode": {
            "type": "boolean"
          }
        }
      },
      "PlatformListingFeedStatusChangedWebhookData": {
        "type": "object",
        "description": "`listing_feed.status_changed` (DTO `platform.listing_feed_status_changed.v1`): a feed listing entered review, was published, rejected, withdrawn or expired. It names the listing by `external_ref`; read `GET /listing-feed/listings/{externalRef}` for revision detail.",
        "required": [
          "object",
          "external_ref",
          "status",
          "listing_id",
          "reason_codes",
          "test_mode"
        ],
        "properties": {
          "object": {
            "type": "string",
            "enum": [
              "listing_feed_listing"
            ]
          },
          "external_ref": {
            "type": "string"
          },
          "status": {
            "type": "string",
            "enum": [
              "in_review",
              "published",
              "rejected",
              "withdrawn",
              "expired"
            ]
          },
          "listing_id": {
            "type": [
              "string",
              "null"
            ],
            "format": "uuid"
          },
          "reason_codes": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "test_mode": {
            "type": "boolean"
          }
        }
      },
      "PlatformViewingRequestedWebhookData": {
        "type": "object",
        "required": [
          "object",
          "viewing_request_id",
          "listing_id",
          "requested_at",
          "status",
          "preferred_windows"
        ],
        "properties": {
          "object": {
            "type": "string",
            "enum": [
              "viewing_request"
            ]
          },
          "viewing_request_id": {
            "type": "string"
          },
          "listing_id": {
            "type": "string"
          },
          "requested_at": {
            "type": "string",
            "format": "date-time"
          },
          "status": {
            "type": "string",
            "enum": [
              "pending"
            ]
          },
          "preferred_windows": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "starts_at",
                "ends_at"
              ],
              "properties": {
                "starts_at": {
                  "type": "string",
                  "format": "date-time"
                },
                "ends_at": {
                  "type": "string",
                  "format": "date-time"
                }
              }
            }
          },
          "test_mode": {
            "type": "boolean"
          }
        },
        "description": "Public-safe viewing request creation payload. Contact details, private notes, buyer identity, and partner routing internals are omitted."
      },
      "PlatformViewingStatusChangedWebhookData": {
        "type": "object",
        "required": [
          "object",
          "viewing_request_id",
          "listing_id",
          "previous_status",
          "status",
          "changed_at"
        ],
        "properties": {
          "object": {
            "type": "string",
            "enum": [
              "viewing_request"
            ]
          },
          "viewing_request_id": {
            "type": "string"
          },
          "listing_id": {
            "type": "string"
          },
          "previous_status": {
            "type": "string"
          },
          "status": {
            "type": "string"
          },
          "changed_at": {
            "type": "string",
            "format": "date-time"
          },
          "test_mode": {
            "type": "boolean"
          }
        },
        "description": "Public-safe viewing status change payload. Contact details, private notes, and routing internals are omitted."
      },
      "PlatformDeveloperShowflatWebhookPublicSafety": {
        "type": "object",
        "required": [
          "buyer_identity_returned",
          "requester_contact_returned",
          "raw_message_returned",
          "broker_contact_returned",
          "raw_calendar_id_returned",
          "crm_owner_private_note_returned",
          "crm_delivery_payload_returned",
          "live_scheduling_feed_returned"
        ],
        "properties": {
          "buyer_identity_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "requester_contact_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_message_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "broker_contact_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_calendar_id_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "crm_owner_private_note_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "crm_delivery_payload_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "live_scheduling_feed_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        },
        "description": "Public-safety flags for developer showflat webhook payloads. Every flag is false for the public contract."
      },
      "PlatformDeveloperShowflatRequestedWebhookData": {
        "type": "object",
        "required": [
          "object",
          "event_type",
          "project_id",
          "showflat_request",
          "showflat_request_boundary",
          "public_safety"
        ],
        "properties": {
          "object": {
            "type": "string",
            "enum": [
              "developer_showflat_request"
            ]
          },
          "event_type": {
            "type": "string",
            "enum": [
              "developer.showflat_requested"
            ]
          },
          "project_id": {
            "type": "string"
          },
          "showflat_request": {
            "$ref": "#/components/schemas/PlatformDeveloperShowflatRequest"
          },
          "showflat_request_boundary": {
            "$ref": "#/components/schemas/PlatformDeveloperShowflatRequestBoundary"
          },
          "public_safety": {
            "$ref": "#/components/schemas/PlatformDeveloperShowflatWebhookPublicSafety"
          },
          "test_mode": {
            "type": "boolean"
          }
        },
        "description": "Public-safe `developer.showflat_requested` payload for sandbox developer showflat request dry-runs. Buyer identity, requester contact details, raw messages, broker contacts, calendar IDs, CRM owner private notes, CRM delivery payloads, and live scheduling feeds are omitted."
      },
      "PlatformBankWebhookPublicSafety": {
        "type": "object",
        "required": [
          "borrower_contact_returned",
          "customer_pii_returned",
          "raw_myinfo_returned",
          "credit_bureau_data_returned",
          "raw_document_contents_returned",
          "nric_fin_returned",
          "income_proof_contents_returned",
          "bank_statement_contents_returned",
          "bank_secret_returned",
          "signing_secret_returned",
          "raw_callback_payload_returned",
          "provider_request_returned",
          "provider_response_returned"
        ],
        "properties": {
          "borrower_contact_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "customer_pii_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_myinfo_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "credit_bureau_data_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_document_contents_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "nric_fin_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "income_proof_contents_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "bank_statement_contents_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "bank_secret_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "signing_secret_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_callback_payload_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "provider_request_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "provider_response_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        },
        "description": "Public-safety flags for bank webhook payloads. Every flag is false for the public contract."
      },
      "PlatformBankApplicationCreatedWebhookData": {
        "type": "object",
        "required": [
          "object",
          "event_type",
          "application",
          "status",
          "application_boundary",
          "public_safety"
        ],
        "properties": {
          "object": {
            "type": "string",
            "enum": [
              "bank_application"
            ]
          },
          "event_type": {
            "type": "string",
            "enum": [
              "bank.application_created"
            ]
          },
          "application": {
            "$ref": "#/components/schemas/PlatformBankApplicationSummary"
          },
          "status": {
            "$ref": "#/components/schemas/PlatformBankApplicationStatus"
          },
          "application_boundary": {
            "$ref": "#/components/schemas/PlatformBankApplicationBoundary"
          },
          "public_safety": {
            "$ref": "#/components/schemas/PlatformBankWebhookPublicSafety"
          },
          "test_mode": {
            "type": "boolean"
          }
        },
        "description": "Public-safe `bank.application_created` payload for sandbox bank application dry-runs. Borrower contact details, MyInfo fields, document contents, credit bureau data, bank secrets, provider submissions, and callback internals are omitted."
      },
      "PlatformBankStatusChangedWebhookData": {
        "type": "object",
        "required": [
          "object",
          "event_type",
          "application",
          "status",
          "status_transition",
          "application_boundary",
          "public_safety"
        ],
        "properties": {
          "object": {
            "type": "string",
            "enum": [
              "bank_application"
            ]
          },
          "event_type": {
            "type": "string",
            "enum": [
              "bank.status_changed"
            ]
          },
          "application": {
            "$ref": "#/components/schemas/PlatformBankApplicationSummary"
          },
          "status": {
            "$ref": "#/components/schemas/PlatformBankApplicationStatus"
          },
          "status_transition": {
            "$ref": "#/components/schemas/PlatformBankApplicationStatusTransition"
          },
          "application_boundary": {
            "$ref": "#/components/schemas/PlatformBankApplicationBoundary"
          },
          "public_safety": {
            "$ref": "#/components/schemas/PlatformBankWebhookPublicSafety"
          },
          "test_mode": {
            "type": "boolean"
          }
        },
        "description": "Public-safe `bank.status_changed` payload. It exposes sandbox status metadata only and omits borrower identity, raw application data, documents, bank secrets, and provider payloads."
      },
      "PlatformBankCallbackFailedWebhookData": {
        "type": "object",
        "required": [
          "object",
          "event_type",
          "callback",
          "callback_boundary",
          "public_safety"
        ],
        "properties": {
          "object": {
            "type": "string",
            "enum": [
              "bank_callback"
            ]
          },
          "event_type": {
            "type": "string",
            "enum": [
              "bank.callback_failed"
            ]
          },
          "callback": {
            "$ref": "#/components/schemas/PlatformBankCallbackSummary"
          },
          "callback_boundary": {
            "$ref": "#/components/schemas/PlatformBankCallbackBoundary"
          },
          "public_safety": {
            "$ref": "#/components/schemas/PlatformBankWebhookPublicSafety"
          },
          "test_mode": {
            "type": "boolean"
          }
        },
        "description": "Public-safe `bank.callback_failed` payload for callback-delivery dry-runs. It omits raw callback payloads, request and response bodies, signing secrets, borrower contact data, and bank provider internals."
      },
      "PlatformServicePaymentWebhookPublicSafety": {
        "type": "object",
        "required": [
          "customer_pii_returned",
          "card_details_returned",
          "card_fingerprint_returned",
          "stripe_secret_returned",
          "stripe_payment_intent_returned",
          "stripe_customer_id_returned",
          "bank_account_returned",
          "hidden_gateway_metadata_returned",
          "private_customer_notes_returned",
          "internal_fraud_signals_returned",
          "raw_processor_payload_returned",
          "service_role_identifier_returned"
        ],
        "properties": {
          "customer_pii_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "card_details_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "card_fingerprint_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "stripe_secret_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "stripe_payment_intent_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "stripe_customer_id_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "bank_account_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "hidden_gateway_metadata_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "private_customer_notes_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "internal_fraud_signals_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "raw_processor_payload_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "service_role_identifier_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          }
        },
        "description": "Public-safety flags for service-payment webhook payloads. Every flag is false for the public contract."
      },
      "PlatformServicePaymentWebhookLedgerSources": {
        "type": "object",
        "required": [
          "bookings_table",
          "transactions_table",
          "payouts_table",
          "refunds_table",
          "client_side_calculation_used",
          "redaction_version"
        ],
        "properties": {
          "bookings_table": {
            "type": "string",
            "enum": [
              "services_bookings"
            ]
          },
          "transactions_table": {
            "type": "string",
            "enum": [
              "services_transactions"
            ]
          },
          "payouts_table": {
            "type": "string",
            "enum": [
              "services_payouts"
            ]
          },
          "refunds_table": {
            "type": "string",
            "enum": [
              "services_booking_refunds"
            ]
          },
          "client_side_calculation_used": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "redaction_version": {
            "type": "string",
            "enum": [
              "service_payment_webhooks.v1"
            ]
          }
        },
        "description": "Ledger source summary for service-payment webhooks. The payload exposes source table names only, never service-role row metadata or raw processor payloads."
      },
      "PlatformServicePaymentWebhookCorrelationIds": {
        "type": "object",
        "required": [
          "request_id",
          "idempotency_reference",
          "transaction_id",
          "payout_id"
        ],
        "properties": {
          "request_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "idempotency_reference": {
            "type": [
              "string",
              "null"
            ],
            "description": "Opaque non-secret idempotency reference. Raw idempotency keys are omitted."
          },
          "transaction_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "payout_id": {
            "type": [
              "string",
              "null"
            ]
          }
        }
      },
      "PlatformServicePaymentWebhookAmountBreakdown": {
        "type": "object",
        "required": [
          "gross_booking_amount_cents",
          "platform_fee_cents",
          "provider_payable_cents",
          "customer_paid_cents",
          "refunded_cents",
          "reversal_cents"
        ],
        "properties": {
          "gross_booking_amount_cents": {
            "type": "integer",
            "minimum": 0
          },
          "platform_fee_cents": {
            "type": "integer",
            "minimum": 0
          },
          "provider_payable_cents": {
            "type": "integer",
            "minimum": 0
          },
          "customer_paid_cents": {
            "type": "integer",
            "minimum": 0
          },
          "refunded_cents": {
            "type": "integer",
            "minimum": 0
          },
          "reversal_cents": {
            "type": "integer",
            "minimum": 0
          }
        }
      },
      "PlatformProviderPayoutWebhookSummary": {
        "type": "object",
        "required": [
          "payout_id",
          "provider_id",
          "provider_reference",
          "currency",
          "status",
          "period",
          "net_payout_cents",
          "payout_line_item_count",
          "settlement_eta",
          "paid_at",
          "failed_at",
          "failure_reason",
          "next_action",
          "accounting_reference"
        ],
        "properties": {
          "payout_id": {
            "type": "string"
          },
          "provider_id": {
            "type": "string"
          },
          "provider_reference": {
            "type": "string"
          },
          "currency": {
            "type": "string",
            "enum": [
              "SGD"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "ready_for_payout",
              "paid",
              "failed"
            ]
          },
          "period": {
            "type": "object",
            "required": [
              "start_date",
              "end_date",
              "timezone"
            ],
            "properties": {
              "start_date": {
                "type": "string",
                "format": "date"
              },
              "end_date": {
                "type": "string",
                "format": "date"
              },
              "timezone": {
                "type": "string",
                "enum": [
                  "Asia/Singapore"
                ]
              }
            }
          },
          "net_payout_cents": {
            "type": "integer",
            "minimum": 0
          },
          "payout_line_item_count": {
            "type": "integer",
            "minimum": 0
          },
          "settlement_eta": {
            "type": [
              "string",
              "null"
            ],
            "format": "date"
          },
          "paid_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "failed_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "failure_reason": {
            "type": [
              "string",
              "null"
            ]
          },
          "next_action": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "awaiting_admin_approval",
              "operator_review_required",
              null
            ]
          },
          "accounting_reference": {
            "type": "string"
          }
        },
        "description": "Public-safe payout summary. Bank-account data, provider bank documents, processor payloads, and service-role identifiers are omitted."
      },
      "PlatformServicePaymentSucceededWebhookData": {
        "type": "object",
        "required": [
          "object",
          "booking_id",
          "booking_reference",
          "provider_id",
          "provider_reference",
          "currency",
          "payment",
          "ledger_sources",
          "correlation_ids",
          "public_safety"
        ],
        "properties": {
          "object": {
            "type": "string",
            "enum": [
              "service_payment"
            ]
          },
          "booking_id": {
            "type": "string"
          },
          "booking_reference": {
            "type": "string"
          },
          "provider_id": {
            "type": "string"
          },
          "provider_reference": {
            "type": "string"
          },
          "currency": {
            "type": "string",
            "enum": [
              "SGD"
            ]
          },
          "payment": {
            "type": "object",
            "required": [
              "status",
              "method_type",
              "invoice_status",
              "paid_at",
              "amount_breakdown"
            ],
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "paid"
                ]
              },
              "method_type": {
                "type": "string",
                "enum": [
                  "card",
                  "points_wallet"
                ]
              },
              "invoice_status": {
                "type": "string",
                "enum": [
                  "paid"
                ]
              },
              "paid_at": {
                "type": "string",
                "format": "date-time"
              },
              "amount_breakdown": {
                "$ref": "#/components/schemas/PlatformServicePaymentWebhookAmountBreakdown"
              }
            }
          },
          "ledger_sources": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookLedgerSources"
          },
          "correlation_ids": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookCorrelationIds"
          },
          "public_safety": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookPublicSafety"
          }
        },
        "description": "Public-safe `service.payment_succeeded` payload. Customer PII, card details, Stripe secrets, bank-account data, raw processor payloads, and private customer notes are omitted."
      },
      "PlatformServicePaymentFailedWebhookData": {
        "type": "object",
        "required": [
          "object",
          "booking_id",
          "booking_reference",
          "provider_id",
          "provider_reference",
          "currency",
          "payment",
          "ledger_sources",
          "correlation_ids",
          "public_safety"
        ],
        "properties": {
          "object": {
            "type": "string",
            "enum": [
              "service_payment"
            ]
          },
          "booking_id": {
            "type": "string"
          },
          "booking_reference": {
            "type": "string"
          },
          "provider_id": {
            "type": "string"
          },
          "provider_reference": {
            "type": "string"
          },
          "currency": {
            "type": "string",
            "enum": [
              "SGD"
            ]
          },
          "payment": {
            "type": "object",
            "required": [
              "status",
              "method_type",
              "invoice_status",
              "failed_at",
              "failure_code"
            ],
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "failed"
                ]
              },
              "method_type": {
                "type": "string",
                "enum": [
                  "card",
                  "points_wallet"
                ]
              },
              "invoice_status": {
                "type": "string",
                "enum": [
                  "open"
                ]
              },
              "failed_at": {
                "type": "string",
                "format": "date-time"
              },
              "failure_code": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "ledger_sources": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookLedgerSources"
          },
          "correlation_ids": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookCorrelationIds"
          },
          "public_safety": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookPublicSafety"
          }
        },
        "description": "Public-safe `service.payment_failed` payload. It exposes safe failure state only, without card details, Stripe errors, hidden gateway metadata, or internal fraud signals."
      },
      "PlatformProviderPayableCreatedWebhookData": {
        "type": "object",
        "required": [
          "object",
          "payable_id",
          "booking_id",
          "booking_reference",
          "provider_id",
          "provider_reference",
          "currency",
          "status",
          "amount_breakdown",
          "eligible_for_payout_at",
          "accounting_reference",
          "ledger_sources",
          "correlation_ids",
          "public_safety"
        ],
        "properties": {
          "object": {
            "type": "string",
            "enum": [
              "provider_payable"
            ]
          },
          "payable_id": {
            "type": "string"
          },
          "booking_id": {
            "type": "string"
          },
          "booking_reference": {
            "type": "string"
          },
          "provider_id": {
            "type": "string"
          },
          "provider_reference": {
            "type": "string"
          },
          "currency": {
            "type": "string",
            "enum": [
              "SGD"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "created"
            ]
          },
          "amount_breakdown": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookAmountBreakdown"
          },
          "eligible_for_payout_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "accounting_reference": {
            "type": "string"
          },
          "ledger_sources": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookLedgerSources"
          },
          "correlation_ids": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookCorrelationIds"
          },
          "public_safety": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookPublicSafety"
          }
        },
        "description": "Public-safe `provider.payable_created` payload backed by service-payment ledger rows, not client-side payable math."
      },
      "PlatformProviderPayoutScheduledWebhookData": {
        "type": "object",
        "required": [
          "object",
          "payout",
          "ledger_sources",
          "correlation_ids",
          "public_safety"
        ],
        "properties": {
          "object": {
            "type": "string",
            "enum": [
              "provider_payout"
            ]
          },
          "payout": {
            "$ref": "#/components/schemas/PlatformProviderPayoutWebhookSummary"
          },
          "ledger_sources": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookLedgerSources"
          },
          "correlation_ids": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookCorrelationIds"
          },
          "public_safety": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookPublicSafety"
          }
        },
        "description": "Public-safe `provider.payout_scheduled` payload. Live payout execution remains admin-controlled."
      },
      "PlatformProviderPayoutPaidWebhookData": {
        "type": "object",
        "required": [
          "object",
          "payout",
          "ledger_sources",
          "correlation_ids",
          "public_safety"
        ],
        "properties": {
          "object": {
            "type": "string",
            "enum": [
              "provider_payout"
            ]
          },
          "payout": {
            "$ref": "#/components/schemas/PlatformProviderPayoutWebhookSummary"
          },
          "ledger_sources": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookLedgerSources"
          },
          "correlation_ids": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookCorrelationIds"
          },
          "public_safety": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookPublicSafety"
          }
        },
        "description": "Public-safe `provider.payout_paid` payload. It exposes settlement state and accounting references only."
      },
      "PlatformProviderPayoutFailedWebhookData": {
        "type": "object",
        "required": [
          "object",
          "payout",
          "ledger_sources",
          "correlation_ids",
          "public_safety"
        ],
        "properties": {
          "object": {
            "type": "string",
            "enum": [
              "provider_payout"
            ]
          },
          "payout": {
            "$ref": "#/components/schemas/PlatformProviderPayoutWebhookSummary"
          },
          "ledger_sources": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookLedgerSources"
          },
          "correlation_ids": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookCorrelationIds"
          },
          "public_safety": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookPublicSafety"
          }
        },
        "description": "Public-safe `provider.payout_failed` payload. Failure reasons are operator-safe summaries, not raw bank or processor payloads."
      },
      "PlatformServiceRefundCreatedWebhookData": {
        "type": "object",
        "required": [
          "object",
          "refund_id",
          "booking_id",
          "booking_reference",
          "provider_id",
          "provider_reference",
          "currency",
          "refund",
          "provider_offset",
          "ledger_sources",
          "correlation_ids",
          "public_safety"
        ],
        "properties": {
          "object": {
            "type": "string",
            "enum": [
              "service_refund"
            ]
          },
          "refund_id": {
            "type": "string"
          },
          "booking_id": {
            "type": "string"
          },
          "booking_reference": {
            "type": "string"
          },
          "provider_id": {
            "type": "string"
          },
          "provider_reference": {
            "type": "string"
          },
          "currency": {
            "type": "string",
            "enum": [
              "SGD"
            ]
          },
          "refund": {
            "type": "object",
            "required": [
              "status",
              "refunded_cents",
              "created_at",
              "accounting_reference"
            ],
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "partial_succeeded",
                  "manual_required"
                ]
              },
              "refunded_cents": {
                "type": "integer",
                "minimum": 0
              },
              "created_at": {
                "type": "string",
                "format": "date-time"
              },
              "accounting_reference": {
                "type": "string"
              }
            }
          },
          "provider_offset": {
            "type": "object",
            "required": [
              "status",
              "payout_id",
              "offset_cents"
            ],
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "reduces_unpaid_payable",
                  "post_payout_offset_required",
                  "none"
                ]
              },
              "payout_id": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "offset_cents": {
                "type": "integer",
                "minimum": 0
              }
            }
          },
          "ledger_sources": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookLedgerSources"
          },
          "correlation_ids": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookCorrelationIds"
          },
          "public_safety": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookPublicSafety"
          }
        },
        "description": "Public-safe `service.refund_created` payload backed by `services_booking_refunds`. It omits raw refund attempts, Stripe objects, dispute evidence, and private customer data."
      },
      "PlatformServiceChargebackOpenedWebhookData": {
        "type": "object",
        "required": [
          "object",
          "chargeback_id",
          "booking_id",
          "booking_reference",
          "provider_id",
          "provider_reference",
          "currency",
          "chargeback",
          "provider_offset",
          "ledger_sources",
          "correlation_ids",
          "public_safety"
        ],
        "properties": {
          "object": {
            "type": "string",
            "enum": [
              "service_chargeback"
            ]
          },
          "chargeback_id": {
            "type": "string"
          },
          "booking_id": {
            "type": "string"
          },
          "booking_reference": {
            "type": "string"
          },
          "provider_id": {
            "type": "string"
          },
          "provider_reference": {
            "type": "string"
          },
          "currency": {
            "type": "string",
            "enum": [
              "SGD"
            ]
          },
          "chargeback": {
            "type": "object",
            "required": [
              "status",
              "disputed_cents",
              "reversal_cents",
              "opened_at"
            ],
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "opened"
                ]
              },
              "disputed_cents": {
                "type": "integer",
                "minimum": 0
              },
              "reversal_cents": {
                "type": "integer",
                "minimum": 0
              },
              "opened_at": {
                "type": "string",
                "format": "date-time"
              }
            }
          },
          "provider_offset": {
            "type": "object",
            "required": [
              "status",
              "payout_id",
              "offset_cents"
            ],
            "properties": {
              "status": {
                "type": "string",
                "enum": [
                  "held_from_unpaid_payable",
                  "post_payout_offset_required"
                ]
              },
              "payout_id": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "offset_cents": {
                "type": "integer",
                "minimum": 0
              }
            }
          },
          "ledger_sources": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookLedgerSources"
          },
          "correlation_ids": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookCorrelationIds"
          },
          "public_safety": {
            "$ref": "#/components/schemas/PlatformServicePaymentWebhookPublicSafety"
          }
        },
        "description": "Public-safe `service.chargeback_opened` payload. It excludes dispute evidence, processor payloads, card details, bank data, and internal fraud signals."
      },
      "PlatformWebhookTestEventRequest": {
        "type": "object",
        "properties": {
          "event_type": {
            "$ref": "#/components/schemas/PlatformWebhookEventType",
            "default": "listing.updated"
          }
        },
        "description": "Sandbox-only webhook test event request. The generated payload uses deterministic fixture data and never contains production PII."
      },
      "PlatformWebhookTestEventResponse": {
        "type": "object",
        "required": [
          "webhook_event",
          "livemode",
          "request_id"
        ],
        "properties": {
          "webhook_event": {
            "type": "object",
            "required": [
              "id",
              "event_type",
              "created_at",
              "outbox_id",
              "dispatch_status",
              "inserted",
              "payload_redaction_version"
            ],
            "properties": {
              "id": {
                "type": "string"
              },
              "event_type": {
                "$ref": "#/components/schemas/PlatformWebhookEventType"
              },
              "created_at": {
                "type": "string",
                "format": "date-time"
              },
              "outbox_id": {
                "type": "string",
                "format": "uuid"
              },
              "dispatch_status": {
                "type": "string",
                "enum": [
                  "pending",
                  "claimed",
                  "delivered",
                  "failed",
                  "abandoned"
                ]
              },
              "inserted": {
                "type": "boolean"
              },
              "payload_redaction_version": {
                "type": "integer",
                "minimum": 1
              }
            }
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformWebhookEndpoint": {
        "type": "object",
        "required": [
          "id",
          "organization_id",
          "client_id",
          "environment",
          "url",
          "description",
          "subscribed_events",
          "signing_secret_prefix",
          "status",
          "last_delivery_at",
          "failure_count",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid"
          },
          "client_id": {
            "type": "string",
            "format": "uuid"
          },
          "environment": {
            "type": "string",
            "enum": [
              "sandbox",
              "live"
            ]
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "subscribed_events": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformWebhookEventType"
            }
          },
          "signing_secret_prefix": {
            "type": [
              "string",
              "null"
            ],
            "description": "Redacted signing-secret prefix for operator matching. The digest and raw secret are never returned."
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "disabled",
              "revoked"
            ]
          },
          "last_delivery_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "failure_count": {
            "type": "integer",
            "minimum": 0
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "CreatePlatformWebhookEndpointRequest": {
        "type": "object",
        "required": [
          "url",
          "subscribed_events"
        ],
        "properties": {
          "url": {
            "type": "string",
            "format": "uri",
            "description": "HTTPS webhook endpoint URL. The API normalizes safe URLs, rejects credentials, non-standard ports, and private DNS/IP targets, and never performs direct delivery during create."
          },
          "description": {
            "type": "string",
            "maxLength": 500
          },
          "subscribed_events": {
            "type": "array",
            "minItems": 1,
            "maxItems": 50,
            "items": {
              "$ref": "#/components/schemas/PlatformWebhookEventType"
            }
          }
        },
        "description": "Webhook endpoint registration request. The returned signing secret is generated server-side and is never accepted from clients."
      },
      "UpdatePlatformWebhookEndpointRequest": {
        "type": "object",
        "minProperties": 1,
        "properties": {
          "url": {
            "type": "string",
            "format": "uri",
            "description": "HTTPS webhook endpoint URL. The API normalizes safe URLs, rejects credentials, non-standard ports, and private DNS/IP targets, and never performs direct delivery during update."
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 500
          },
          "subscribed_events": {
            "type": "array",
            "minItems": 1,
            "maxItems": 50,
            "items": {
              "$ref": "#/components/schemas/PlatformWebhookEventType"
            }
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "disabled"
            ]
          }
        },
        "description": "Safe webhook endpoint URL and metadata updates. URL changes are SSRF-validated and normalized before storage. Signing-secret issuance, direct delivery, and AWS dispatch are separate future workflows."
      },
      "PlatformWebhookEndpointListResponse": {
        "type": "object",
        "required": [
          "endpoints",
          "pagination",
          "livemode",
          "request_id"
        ],
        "properties": {
          "endpoints": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformWebhookEndpoint"
            }
          },
          "pagination": {
            "type": "object",
            "required": [
              "limit",
              "next_cursor"
            ],
            "properties": {
              "limit": {
                "type": "integer"
              },
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformWebhookEndpointResponse": {
        "type": "object",
        "required": [
          "endpoint",
          "livemode",
          "request_id"
        ],
        "properties": {
          "endpoint": {
            "$ref": "#/components/schemas/PlatformWebhookEndpoint"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "CreatePlatformWebhookEndpointResponse": {
        "type": "object",
        "required": [
          "endpoint",
          "signing_secret",
          "signing_secret_revealed",
          "livemode",
          "request_id"
        ],
        "properties": {
          "endpoint": {
            "$ref": "#/components/schemas/PlatformWebhookEndpoint"
          },
          "signing_secret": {
            "type": [
              "string",
              "null"
            ],
            "description": "Raw whsec value shown only in the first successful create response. Idempotency replays return null so raw signing secrets are not persisted."
          },
          "signing_secret_revealed": {
            "type": "boolean"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformWebhookDelivery": {
        "type": "object",
        "required": [
          "id",
          "endpoint_id",
          "organization_id",
          "client_id",
          "environment",
          "event_type",
          "event_id",
          "delivery_status",
          "attempt_count",
          "next_attempt_at",
          "response_status",
          "error_code",
          "request_id",
          "payload_redaction_version",
          "metadata",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "endpoint_id": {
            "type": "string",
            "format": "uuid"
          },
          "organization_id": {
            "type": "string",
            "format": "uuid"
          },
          "client_id": {
            "type": "string",
            "format": "uuid"
          },
          "environment": {
            "type": "string",
            "enum": [
              "sandbox",
              "live"
            ]
          },
          "event_type": {
            "$ref": "#/components/schemas/PlatformWebhookEventType"
          },
          "event_id": {
            "type": "string"
          },
          "delivery_status": {
            "type": "string",
            "enum": [
              "pending",
              "success",
              "failed",
              "abandoned"
            ]
          },
          "attempt_count": {
            "type": "integer",
            "minimum": 0
          },
          "next_attempt_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "response_status": {
            "type": [
              "integer",
              "null"
            ]
          },
          "error_code": {
            "type": [
              "string",
              "null"
            ]
          },
          "request_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "payload_redaction_version": {
            "type": "integer",
            "minimum": 1
          },
          "metadata": {
            "type": "object",
            "required": [
              "endpoint_host",
              "payload_bytes",
              "payload_too_large",
              "payload_redaction_version"
            ],
            "properties": {
              "endpoint_host": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "payload_bytes": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 0
              },
              "payload_too_large": {
                "type": [
                  "boolean",
                  "null"
                ]
              },
              "payload_redaction_version": {
                "type": "integer",
                "minimum": 1
              }
            },
            "description": "Redacted delivery metadata only. Payloads, response bodies, response headers, raw URLs with credentials, and signing secrets are never returned."
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformWebhookRetryPolicy": {
        "type": "object",
        "required": [
          "policy_version",
          "automatic_retries_enabled",
          "automatic_dispatch",
          "outbox_max_attempts",
          "manual_replay",
          "replay_idempotency",
          "live_replay_supported",
          "payload_retention_required_for_replay"
        ],
        "properties": {
          "policy_version": {
            "type": "string",
            "enum": [
              "platform_webhook_retry_policy.v1"
            ]
          },
          "automatic_retries_enabled": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "automatic_dispatch": {
            "type": "string",
            "enum": [
              "deferred_until_queue_dispatcher"
            ]
          },
          "outbox_max_attempts": {
            "type": "integer",
            "minimum": 1
          },
          "manual_replay": {
            "type": "string",
            "enum": [
              "sandbox_only"
            ]
          },
          "replay_idempotency": {
            "type": "string",
            "enum": [
              "required"
            ]
          },
          "live_replay_supported": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "payload_retention_required_for_replay": {
            "type": "boolean",
            "enum": [
              true
            ]
          }
        },
        "description": "Current webhook retry posture. Automatic queue dispatch is intentionally deferred; sandbox replay requires an Idempotency-Key and retained outbox payload evidence."
      },
      "PlatformWebhookDeliveryListResponse": {
        "type": "object",
        "required": [
          "deliveries",
          "pagination",
          "retry_policy",
          "livemode",
          "request_id"
        ],
        "properties": {
          "deliveries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformWebhookDelivery"
            }
          },
          "pagination": {
            "type": "object",
            "required": [
              "limit",
              "next_cursor"
            ],
            "properties": {
              "limit": {
                "type": "integer"
              },
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "retry_policy": {
            "$ref": "#/components/schemas/PlatformWebhookRetryPolicy"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformWebhookDeliveryResponse": {
        "type": "object",
        "required": [
          "delivery",
          "retry_policy",
          "livemode",
          "request_id"
        ],
        "properties": {
          "delivery": {
            "$ref": "#/components/schemas/PlatformWebhookDelivery"
          },
          "retry_policy": {
            "$ref": "#/components/schemas/PlatformWebhookRetryPolicy"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformWebhookDeliveryReplayResponse": {
        "type": "object",
        "required": [
          "replay",
          "retry_policy",
          "livemode",
          "request_id"
        ],
        "properties": {
          "replay": {
            "type": "object",
            "required": [
              "delivery_id",
              "source_event_id",
              "replay_event_id",
              "event_type",
              "outbox_id",
              "dispatch_status",
              "inserted",
              "payload_redaction_version",
              "replay_status",
              "delivery_requeued",
              "webhook_sent",
              "payload_returned",
              "response_body_returned",
              "response_headers_returned",
              "signing_secret_returned"
            ],
            "properties": {
              "delivery_id": {
                "type": "string",
                "format": "uuid"
              },
              "source_event_id": {
                "type": "string"
              },
              "replay_event_id": {
                "type": "string"
              },
              "event_type": {
                "$ref": "#/components/schemas/PlatformWebhookEventType"
              },
              "outbox_id": {
                "type": "string",
                "format": "uuid"
              },
              "dispatch_status": {
                "type": "string",
                "enum": [
                  "pending",
                  "claimed",
                  "delivered",
                  "failed",
                  "abandoned"
                ]
              },
              "inserted": {
                "type": "boolean"
              },
              "payload_redaction_version": {
                "type": "integer",
                "minimum": 1
              },
              "replay_status": {
                "type": "string",
                "enum": [
                  "queued"
                ]
              },
              "delivery_requeued": {
                "type": "boolean",
                "enum": [
                  true
                ]
              },
              "webhook_sent": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "payload_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "response_body_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "response_headers_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "signing_secret_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "retry_policy": {
            "$ref": "#/components/schemas/PlatformWebhookRetryPolicy"
          },
          "livemode": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "request_id": {
            "type": "string"
          }
        },
        "description": "Sandbox webhook delivery replay enqueue response. The API creates a DB outbox replay record only; it does not direct-send webhooks or expose payloads, response evidence, endpoint URLs, or signing secrets."
      },
      "PlatformManagedWebhookEventType": {
        "type": "string",
        "enum": [
          "viewing.requested"
        ],
        "description": "Launch-eligible managed event types only. Advertised future taxonomy is excluded until a real producer, DTO, classification, retention policy, and consent boundary exist."
      },
      "CreatePlatformManagedWebhookSubscriptionRequest": {
        "type": "object",
        "required": [
          "name",
          "url",
          "event_types",
          "secret"
        ],
        "properties": {
          "name": {
            "type": "string",
            "pattern": "^[a-z][a-z0-9_-]{0,119}$",
            "description": "Immutable name unique within the organization and environment. Equivalent retries recover the existing resource; incompatible reuse returns a conflict."
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 500
          },
          "event_types": {
            "type": "array",
            "minItems": 1,
            "maxItems": 10,
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/PlatformManagedWebhookEventType"
            }
          },
          "secret": {
            "type": "string",
            "minLength": 32,
            "maxLength": 1024,
            "writeOnly": true,
            "description": "Caller-supplied signing secret. It is write-only and never appears in responses, idempotency evidence, logs, Terraform state, or OpenAPI examples."
          }
        }
      },
      "UpdatePlatformManagedWebhookSubscriptionRequest": {
        "type": "object",
        "minProperties": 1,
        "properties": {
          "url": {
            "type": "string",
            "format": "uri"
          },
          "description": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 500
          },
          "event_types": {
            "type": "array",
            "minItems": 1,
            "maxItems": 10,
            "uniqueItems": true,
            "items": {
              "$ref": "#/components/schemas/PlatformManagedWebhookEventType"
            }
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "paused"
            ]
          }
        }
      },
      "RotatePlatformManagedWebhookSecretRequest": {
        "type": "object",
        "required": [
          "secret"
        ],
        "properties": {
          "secret": {
            "type": "string",
            "minLength": 32,
            "maxLength": 1024,
            "writeOnly": true,
            "description": "Caller-supplied signing secret. It is write-only and never appears in responses, idempotency evidence, logs, Terraform state, or OpenAPI examples."
          }
        }
      },
      "RevokePlatformManagedWebhookSubscriptionRequest": {
        "type": "object",
        "properties": {
          "reason": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 500
          }
        }
      },
      "PlatformManagedWebhookSubscription": {
        "type": "object",
        "required": [
          "id",
          "name",
          "environment",
          "url",
          "description",
          "event_types",
          "status",
          "secret_version",
          "secret_prefix",
          "secret_returned",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "name": {
            "type": "string"
          },
          "environment": {
            "type": "string",
            "enum": [
              "sandbox",
              "live"
            ]
          },
          "url": {
            "type": "string",
            "format": "uri"
          },
          "description": {
            "type": [
              "string",
              "null"
            ]
          },
          "event_types": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformManagedWebhookEventType"
            }
          },
          "status": {
            "type": "string",
            "enum": [
              "active",
              "paused"
            ]
          },
          "secret_version": {
            "type": "integer",
            "minimum": 1
          },
          "secret_prefix": {
            "type": "string",
            "description": "Redacted operator-matching prefix only; never the secret or its digest."
          },
          "secret_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        }
      },
      "PlatformManagedWebhookSubscriptionResponse": {
        "type": "object",
        "required": [
          "subscription",
          "livemode",
          "request_id"
        ],
        "properties": {
          "subscription": {
            "$ref": "#/components/schemas/PlatformManagedWebhookSubscription"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "ListPlatformManagedWebhookSubscriptionsResponse": {
        "type": "object",
        "required": [
          "subscriptions",
          "pagination",
          "livemode",
          "request_id"
        ],
        "properties": {
          "subscriptions": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformManagedWebhookSubscription"
            }
          },
          "pagination": {
            "type": "object",
            "required": [
              "limit",
              "next_cursor"
            ],
            "properties": {
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              },
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformManagedWebhookRevokeResponse": {
        "type": "object",
        "required": [
          "subscription_id",
          "revoked",
          "secret_deletion_scheduled",
          "livemode",
          "request_id"
        ],
        "properties": {
          "subscription_id": {
            "type": "string",
            "format": "uuid"
          },
          "revoked": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "secret_deletion_scheduled": {
            "type": "boolean",
            "enum": [
              true
            ]
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "PlatformManagedWebhookDeliveryStatus": {
        "type": "string",
        "enum": [
          "pending",
          "publishable",
          "queued",
          "delivering",
          "retry_scheduled",
          "delivered",
          "abandoned",
          "revoked"
        ]
      },
      "PlatformManagedWebhookDelivery": {
        "type": "object",
        "required": [
          "id",
          "subscription_id",
          "source_event_id",
          "event_type",
          "environment",
          "intent_kind",
          "subscription_sequence",
          "dispatch_status",
          "attempt_count",
          "last_response_status",
          "last_error_code",
          "next_attempt_at",
          "payload_returned",
          "response_body_returned",
          "response_headers_returned",
          "secret_returned",
          "created_at",
          "updated_at"
        ],
        "properties": {
          "id": {
            "type": "string",
            "format": "uuid"
          },
          "subscription_id": {
            "type": "string",
            "format": "uuid"
          },
          "source_event_id": {
            "type": "string"
          },
          "event_type": {
            "$ref": "#/components/schemas/PlatformManagedWebhookEventType"
          },
          "environment": {
            "type": "string",
            "enum": [
              "sandbox",
              "live"
            ]
          },
          "intent_kind": {
            "type": "string",
            "enum": [
              "original",
              "replay"
            ]
          },
          "subscription_sequence": {
            "type": "integer",
            "minimum": 1
          },
          "dispatch_status": {
            "$ref": "#/components/schemas/PlatformManagedWebhookDeliveryStatus"
          },
          "attempt_count": {
            "type": "integer",
            "minimum": 0
          },
          "last_response_status": {
            "type": [
              "integer",
              "null"
            ]
          },
          "last_error_code": {
            "type": [
              "string",
              "null"
            ]
          },
          "next_attempt_at": {
            "type": "string",
            "format": "date-time"
          },
          "payload_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "response_body_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "response_headers_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "secret_returned": {
            "type": "boolean",
            "enum": [
              false
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "description": "Append-only redacted delivery evidence. Payloads, response bodies, response headers, URLs, secret references, digests, and signing secrets are never returned."
      },
      "PlatformManagedWebhookDeliveryResponse": {
        "type": "object",
        "required": [
          "delivery",
          "livemode",
          "request_id"
        ],
        "properties": {
          "delivery": {
            "$ref": "#/components/schemas/PlatformManagedWebhookDelivery"
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "ListPlatformManagedWebhookDeliveriesResponse": {
        "type": "object",
        "required": [
          "deliveries",
          "pagination",
          "livemode",
          "request_id"
        ],
        "properties": {
          "deliveries": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/PlatformManagedWebhookDelivery"
            }
          },
          "pagination": {
            "type": "object",
            "required": [
              "limit",
              "next_cursor"
            ],
            "properties": {
              "limit": {
                "type": "integer",
                "minimum": 1,
                "maximum": 100
              },
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "ReplayPlatformManagedWebhookDeliveryRequest": {
        "type": "object",
        "properties": {
          "reason": {
            "type": [
              "string",
              "null"
            ],
            "maxLength": 500
          }
        }
      },
      "ReplayPlatformManagedWebhookDeliveryResponse": {
        "type": "object",
        "required": [
          "replay",
          "livemode",
          "request_id"
        ],
        "properties": {
          "replay": {
            "type": "object",
            "required": [
              "original_delivery_id",
              "replay_delivery_id",
              "subscription_id",
              "dispatch_status",
              "payload_returned",
              "secret_returned"
            ],
            "properties": {
              "original_delivery_id": {
                "type": "string",
                "format": "uuid"
              },
              "replay_delivery_id": {
                "type": "string",
                "format": "uuid"
              },
              "subscription_id": {
                "type": "string",
                "format": "uuid"
              },
              "dispatch_status": {
                "$ref": "#/components/schemas/PlatformManagedWebhookDeliveryStatus"
              },
              "payload_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              },
              "secret_returned": {
                "type": "boolean",
                "enum": [
                  false
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "CurrentWorkspaceResponse": {
        "type": "object",
        "required": [
          "workspace",
          "organization_incarnation",
          "modules",
          "livemode",
          "request_id"
        ],
        "properties": {
          "workspace": {
            "type": "object",
            "required": [
              "id",
              "display_name",
              "organization_type",
              "status"
            ],
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "display_name": {
                "type": "string",
                "minLength": 1,
                "maxLength": 160
              },
              "organization_type": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80
              },
              "status": {
                "type": "string",
                "enum": [
                  "active",
                  "suspended",
                  "archived"
                ]
              }
            }
          },
          "organization_incarnation": {
            "type": "object",
            "required": [
              "id",
              "slug",
              "environment",
              "status"
            ],
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "slug": {
                "type": "string",
                "minLength": 1,
                "maxLength": 128
              },
              "environment": {
                "type": "string",
                "enum": [
                  "sandbox",
                  "live"
                ]
              },
              "status": {
                "type": "string",
                "minLength": 1,
                "maxLength": 80
              }
            }
          },
          "modules": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "module_key",
                "status",
                "terms_version"
              ],
              "properties": {
                "id": {
                  "type": "string",
                  "format": "uuid"
                },
                "module_key": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 80
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "requested",
                    "restricted",
                    "approved",
                    "active",
                    "suspended",
                    "revoked"
                  ]
                },
                "terms_version": {
                  "type": [
                    "string",
                    "null"
                  ],
                  "maxLength": 160
                }
              }
            }
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "Problem": {
        "type": "object",
        "required": [
          "type",
          "title",
          "status",
          "code",
          "detail",
          "request_id"
        ],
        "properties": {
          "type": {
            "type": "string",
            "format": "uri"
          },
          "title": {
            "type": "string"
          },
          "status": {
            "type": "integer"
          },
          "code": {
            "type": "string"
          },
          "detail": {
            "type": "string"
          },
          "request_id": {
            "type": "string"
          }
        },
        "examples": [
          {
            "type": "https://platform-api.homejourney.sg/problems/missing_scope",
            "title": "Missing required scope",
            "status": 403,
            "code": "missing_scope",
            "detail": "The request is not authorized for this platform capability.",
            "request_id": "req_01hjp_slice1"
          }
        ]
      },
      "CurrentOrganizationResponse": {
        "type": "object",
        "required": [
          "organization",
          "client",
          "api_key",
          "principal",
          "livemode",
          "request_id"
        ],
        "properties": {
          "organization": {
            "type": "object",
            "required": [
              "id",
              "slug",
              "display_name",
              "type",
              "environment"
            ],
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "slug": {
                "type": "string"
              },
              "display_name": {
                "type": "string"
              },
              "type": {
                "type": "string"
              },
              "environment": {
                "type": "string",
                "enum": [
                  "sandbox",
                  "live"
                ]
              }
            }
          },
          "client": {
            "type": "object",
            "required": [
              "id",
              "name",
              "environment",
              "rate_tier",
              "data_tier"
            ],
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "name": {
                "type": "string"
              },
              "environment": {
                "type": "string",
                "enum": [
                  "sandbox",
                  "live"
                ]
              },
              "rate_tier": {
                "type": "string"
              },
              "data_tier": {
                "type": "string"
              }
            }
          },
          "api_key": {
            "type": "object",
            "required": [
              "id",
              "prefix",
              "scopes",
              "environment",
              "expires_at"
            ],
            "properties": {
              "id": {
                "type": "string",
                "format": "uuid"
              },
              "prefix": {
                "type": "string"
              },
              "scopes": {
                "type": "array",
                "items": {
                  "$ref": "#/components/schemas/PlatformScope"
                }
              },
              "environment": {
                "type": "string",
                "enum": [
                  "sandbox",
                  "live"
                ]
              },
              "expires_at": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              }
            }
          },
          "principal": {
            "type": "object",
            "required": [
              "type",
              "actor_type",
              "environment",
              "organization_id",
              "organization_type",
              "client_id",
              "api_key_id",
              "user_id",
              "subject_user_id",
              "agent_id",
              "subject_agent_id",
              "agency_id",
              "team_id",
              "delegation_id",
              "delegated"
            ],
            "description": "Explicit platform principal. API keys are automation-client credentials, not end-user identity. Delegated agency actors stay separate from subject agents.",
            "properties": {
              "type": {
                "type": "string",
                "enum": [
                  "partner_organization",
                  "end_user",
                  "cea_agent",
                  "agency_organization",
                  "agency_admin",
                  "team_member",
                  "automation_client"
                ]
              },
              "actor_type": {
                "type": "string",
                "enum": [
                  "api_key",
                  "oauth_user",
                  "admin_user",
                  "system"
                ]
              },
              "environment": {
                "type": "string",
                "enum": [
                  "sandbox",
                  "live"
                ]
              },
              "organization_id": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "uuid"
              },
              "organization_type": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "client_id": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "uuid"
              },
              "api_key_id": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "uuid"
              },
              "user_id": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "uuid"
              },
              "subject_user_id": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "uuid"
              },
              "agent_id": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "subject_agent_id": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "agency_id": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "team_id": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "delegation_id": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "delegated": {
                "type": "boolean"
              }
            }
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "ListingSummary": {
        "type": "object",
        "required": [
          "id",
          "title",
          "property_type",
          "district",
          "approximate_location",
          "price",
          "bedrooms",
          "bathrooms",
          "square_feet",
          "public_media_url",
          "source_updated_at",
          "freshness_status",
          "livemode"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "title": {
            "type": "string"
          },
          "property_type": {
            "type": "string"
          },
          "district": {
            "type": "string"
          },
          "approximate_location": {
            "type": "string"
          },
          "price": {
            "type": "integer"
          },
          "bedrooms": {
            "type": "integer"
          },
          "bathrooms": {
            "type": "integer"
          },
          "square_feet": {
            "type": "integer"
          },
          "public_media_url": {
            "type": "string",
            "format": "uri"
          },
          "source_updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "freshness_status": {
            "type": "string",
            "enum": [
              "fresh",
              "stale",
              "unknown"
            ]
          },
          "visibility_band": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "fresh",
              "aging",
              null
            ],
            "description": "Public listing visibility band. This is separate from source freshness."
          },
          "last_verified_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "livemode": {
            "type": "boolean"
          }
        }
      },
      "ListingListResponse": {
        "type": "object",
        "required": [
          "listings",
          "pagination",
          "livemode",
          "request_id"
        ],
        "properties": {
          "listings": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/ListingSummary"
            }
          },
          "pagination": {
            "type": "object",
            "required": [
              "limit",
              "next_cursor"
            ],
            "properties": {
              "limit": {
                "type": "integer"
              },
              "next_cursor": {
                "type": [
                  "string",
                  "null"
                ]
              }
            }
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "ListingDetailResponse": {
        "type": "object",
        "required": [
          "listing",
          "livemode",
          "request_id"
        ],
        "properties": {
          "listing": {
            "allOf": [
              {
                "$ref": "#/components/schemas/ListingSummary"
              },
              {
                "type": "object",
                "required": [
                  "description",
                  "tenure",
                  "furnishing"
                ],
                "properties": {
                  "description": {
                    "type": "string"
                  },
                  "tenure": {
                    "type": "string"
                  },
                  "property_tenure": {
                    "type": [
                      "string",
                      "null"
                    ]
                  },
                  "furnishing": {
                    "type": "string"
                  }
                }
              }
            ]
          },
          "livemode": {
            "type": "boolean"
          },
          "request_id": {
            "type": "string"
          }
        }
      },
      "CreateViewingRequestRequest": {
        "type": "object",
        "required": [
          "listing_id",
          "contact",
          "preferred_slots",
          "consent_to_contact"
        ],
        "properties": {
          "listing_id": {
            "type": "string",
            "minLength": 1,
            "maxLength": 128,
            "description": "Sandbox fixture listing ID for sandbox credentials or public-safe platform listing ID for live credentials."
          },
          "contact": {
            "type": "object",
            "required": [
              "name",
              "phone"
            ],
            "properties": {
              "name": {
                "type": "string",
                "maxLength": 120
              },
              "phone": {
                "type": "string",
                "maxLength": 40
              },
              "email": {
                "type": "string",
                "format": "email",
                "maxLength": 254
              }
            }
          },
          "preferred_slots": {
            "type": "array",
            "minItems": 1,
            "maxItems": 3,
            "items": {
              "type": "object",
              "required": [
                "date",
                "time_start"
              ],
              "properties": {
                "date": {
                  "type": "string",
                  "pattern": "^\\d{4}-\\d{2}-\\d{2}$"
                },
                "time_start": {
                  "type": "string",
                  "maxLength": 20
                },
                "time_end": {
                  "type": "string",
                  "maxLength": 20
                },
                "display": {
                  "type": "string",
                  "maxLength": 80
                }
              }
            }
          },
          "message": {
            "type": "string",
            "maxLength": 1000
          },
          "consent_to_contact": {
            "type": "boolean",
            "const": true
          }
        }
      }
    },
    "examples": {
      "CurrentOrganizationSandbox": {
        "summary": "Sandbox organization context",
        "value": {
          "organization": {
            "id": "00000000-0000-4000-8000-000000000001",
            "slug": "sandbox-platform-demo",
            "display_name": "Sandbox Platform Demo",
            "type": "sandbox",
            "environment": "sandbox"
          },
          "client": {
            "id": "00000000-0000-4000-8000-000000000101",
            "name": "Sandbox Platform Demo Client",
            "environment": "sandbox",
            "rate_tier": "sandbox_default",
            "data_tier": "public_safe"
          },
          "api_key": {
            "id": "00000000-0000-4000-8000-000000000201",
            "prefix": "hjp_test_abc123",
            "scopes": [
              "organizations.read",
              "listings.read",
              "viewings.write"
            ],
            "environment": "sandbox",
            "expires_at": "2026-06-30T00:00:00.000Z"
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "sandbox",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "AgentListingActionSandbox": {
        "summary": "Prepared sandbox Agent Team listing-draft update",
        "value": {
          "ok": true,
          "action": "prepare_listing_draft_update",
          "action_id": "agent_listing_draft_update:sandbox-listing-tampines-001:ef59c1dcb59cb38d51a39643",
          "status": "prepared",
          "required_scope": "agent.listings.read",
          "required_confirmation": "first_party_app",
          "idempotency_required": true,
          "expires_at": "2026-07-14T00:00:00.000Z",
          "agent": {
            "id": "sandbox-agent-primary",
            "cea_registration_number": "R123456A",
            "cea_verified": true
          },
          "listing": {
            "id": "sandbox-listing-tampines-001",
            "ownership_verified": true,
            "source": "sandbox_fixture"
          },
          "side_effects": {
            "prepared_action_created": true,
            "action_prepared_event_created": true,
            "canonical_listing_changed": false,
            "published": false,
            "distribution_changed": false,
            "contact_data_exposed": false,
            "external_system_calls": false
          },
          "safety": {
            "delegated": false,
            "api_confirmation_allowed": false,
            "api_rejection_allowed": false
          },
          "continuation": {
            "url": "https://homejourney.sg/console/o/current/platform/agent-actions/agent_listing_draft_update%3Asandbox-listing-tampines-001%3Aef59c1dcb59cb38d51a39643",
            "handoff_required": true,
            "reason": "first_party_confirmation_required"
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "sandbox",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_agent_listing_action"
        }
      },
      "CurrentAgentSandbox": {
        "summary": "Sandbox current agent workspace",
        "value": {
          "agent": {
            "id": "sandbox-agent-primary",
            "display_name": "Sandbox CEA Agent",
            "cea_registration_number": "R123456A",
            "cea_status": "verified",
            "cea_verified": true,
            "singpass_verified": true,
            "agency": {
              "id": "sandbox-agency-demo",
              "name": "Sandbox Realty Pte Ltd",
              "branch_name": "Central Branch",
              "team_name": "Platform Pilot Team"
            },
            "profile_visibility": "sandbox_fixture"
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "granted_agent_scopes": [
              "agent.profile.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_agent_identity": "deferred"
          },
          "entitlements": {
            "agent_access": {
              "status": "active",
              "source": "sandbox_fixture"
            },
            "listing_slots": {
              "status": "active",
              "limit": 5,
              "active": 2,
              "remaining": 3
            },
            "publish_allowed": false,
            "publish_blockers": [
              "write_actions_deferred",
              "owned_homejourney_flow_required"
            ]
          },
          "capabilities": {
            "read": [
              "agent.profile.summary",
              "agent.entitlements.summary"
            ],
            "write_deferred": [
              "agent.profile.write",
              "agent.listings.publish",
              "agent.distribution.manage"
            ]
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "sandbox",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "CurrentAgentProfileSandbox": {
        "summary": "Sandbox current agent profile",
        "value": {
          "profile": {
            "agent_id": "sandbox-agent-primary",
            "profile_slug": "sandbox-cea-agent",
            "display_name": "Sandbox CEA Agent",
            "headline": "Sandbox residential advisor for partner API tests",
            "biography": "Public-safe sandbox profile used for agent integration tests. This fixture does not contain private notes, documents, contact exports, or CRM data.",
            "languages": [
              "English",
              "Mandarin"
            ],
            "specialties": [
              "HDB upgraders",
              "CCR resale condos",
              "New launch advisory"
            ],
            "service_areas": [
              "Queenstown",
              "Tiong Bahru",
              "River Valley"
            ],
            "credentials": {
              "cea_registration_number": "R123456A",
              "cea_status": "verified",
              "cea_verified": true,
              "singpass_verified": true
            },
            "agency": {
              "id": "sandbox-agency-demo",
              "name": "Sandbox Realty Pte Ltd",
              "branch_name": "Central Branch",
              "team_name": "Platform Pilot Team"
            },
            "transaction_expertise": [
              {
                "district": "D03",
                "property_type": "Condominium",
                "source": "cea_transactions",
                "confidence": "sandbox_fixture"
              }
            ],
            "public_safety": {
              "profile_visibility": "sandbox_fixture",
              "contact_fields_returned": false,
              "private_notes_returned": false,
              "documents_returned": false,
              "crm_data_returned": false
            }
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "granted_agent_scopes": [
              "agent.profile.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_agent_identity": "deferred"
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "sandbox",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "CurrentAgentListingsSandbox": {
        "summary": "Sandbox current agent listings",
        "value": {
          "listings": [
            {
              "id": "sandbox-listing-queenstown-001",
              "title": "Queenstown Skyline Residence",
              "property_type": "condo",
              "district": "D03",
              "approximate_location": "Queenstown MRT area",
              "price": 1380000,
              "bedrooms": 3,
              "bathrooms": 2,
              "square_feet": 980,
              "public_media_url": "https://cdn.homejourney.sg/platform/sandbox/queenstown-001.jpg",
              "source_updated_at": "2026-05-14T00:00:00.000Z",
              "freshness_status": "fresh",
              "livemode": false,
              "agent_listing_status": "active",
              "publish_state": "published",
              "visibility": "public_safe",
              "allowed_actions": [
                "read"
              ],
              "blocked_actions": [
                "publish",
                "archive",
                "distribute",
                "export_contacts"
              ],
              "ownership": {
                "agent_id": "sandbox-agent-primary",
                "agency_id": "sandbox-agency-demo",
                "source": "sandbox_fixture",
                "delegated": false
              }
            }
          ],
          "pagination": {
            "limit": 50,
            "next_cursor": null
          },
          "portfolio_summary": {
            "total": 2,
            "active": 1,
            "draft": 1,
            "remaining_slots": 3,
            "publish_allowed": false
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "granted_agent_scopes": [
              "agent.listings.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_agent_identity": "deferred"
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "sandbox",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "public_safety": {
            "listing_fields": "public_safe",
            "private_notes_returned": false,
            "owner_contact_returned": false,
            "routing_data_returned": false,
            "distribution_controls_returned": false
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "CurrentAgentAnalyticsSandbox": {
        "summary": "Sandbox current agent analytics",
        "value": {
          "analytics": {
            "agent_id": "sandbox-agent-primary",
            "period": {
              "start_date": "2026-05-01",
              "end_date": "2026-05-31",
              "timezone": "Asia/Singapore"
            },
            "listing_metrics": {
              "active_listings": 1,
              "draft_listings": 1,
              "public_listing_views": 128,
              "saved_listing_count": 5,
              "viewing_request_count": 3
            },
            "engagement_metrics": {
              "profile_views": 42,
              "share_clicks": 2,
              "inquiry_clicks": 7
            },
            "response_metrics": {
              "median_first_response_minutes": 18,
              "sla_target_minutes": 60,
              "sla_met_rate": 0.92
            },
            "public_safety": {
              "aggregate_only": true,
              "customer_pii_returned": false,
              "customer_contact_returned": false,
              "private_notes_returned": false,
              "raw_event_logs_returned": false
            }
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "granted_agent_scopes": [
              "agent.analytics.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_agent_identity": "deferred"
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "sandbox",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "CurrentAgentClientsSandbox": {
        "summary": "Sandbox current agent client relationship status",
        "value": {
          "clients": {
            "agent_id": "sandbox-agent-primary",
            "summary": {
              "total_clients": 3,
              "active_clients": 2,
              "nurturing_clients": 1,
              "dormant_clients": 0,
              "contact_fields_returned": false,
              "private_notes_returned": false
            },
            "clients": [
              {
                "client_id": "sandbox-client-queenstown-001",
                "redacted_client_reference": "sandbox-client-a",
                "relationship_stage": "active_search",
                "intent": "buy",
                "budget_band": "SGD 1.4M-1.6M",
                "preferred_property_types": [
                  "Condominium"
                ],
                "preferred_locations": [
                  "Queenstown",
                  "Tiong Bahru"
                ],
                "linked_listing_ids": [
                  "sandbox-listing-queenstown-001"
                ],
                "last_activity_at": "2026-05-15T03:15:00.000Z",
                "next_action": "owned_homejourney_flow_required",
                "consent": {
                  "contact_allowed": false,
                  "marketing_allowed": false,
                  "consent_receipt_returned": false
                },
                "actions": {
                  "allowed": [
                    "read"
                  ],
                  "blocked": [
                    "contact",
                    "export_contact",
                    "add_note",
                    "schedule_viewing",
                    "reassign"
                  ]
                }
              }
            ],
            "public_safety": {
              "client_names_returned": false,
              "customer_pii_returned": false,
              "customer_contact_returned": false,
              "private_notes_returned": false,
              "raw_message_returned": false,
              "financial_documents_returned": false,
              "identity_documents_returned": false,
              "owner_contact_returned": false,
              "routing_data_returned": false,
              "contact_export_returned": false,
              "write_controls_returned": false
            }
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "granted_agent_scopes": [
              "agent.clients.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_agent_identity": "deferred"
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "sandbox",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "CurrentAgentDistributionSandbox": {
        "summary": "Sandbox current agent distribution status",
        "value": {
          "distribution": {
            "agent_id": "sandbox-agent-primary",
            "summary": {
              "total_listings": 2,
              "active_listings": 1,
              "draft_listings": 1,
              "active_channels": 1,
              "pending_channels": 1,
              "paused_channels": 1,
              "failed_channels": 1,
              "lead_counts_returned": false
            },
            "listings": [
              {
                "listing_id": "sandbox-listing-queenstown-001",
                "title": "Queenstown Skyline Residence",
                "agent_listing_status": "active",
                "distribution_state": "active",
                "eligibility": {
                  "eligible": true,
                  "blockers": [],
                  "source": "sandbox_fixture"
                },
                "channels": [
                  {
                    "channel_id": "sandbox-channel-homejourney",
                    "channel_name": "homejourney_main",
                    "display_name": "Homejourney",
                    "channel_type": "homejourney",
                    "status": "active",
                    "syndicated_at": "2026-05-14T02:00:00.000Z",
                    "paused_at": null,
                    "failure_code": null,
                    "lead_count_returned": false,
                    "lead_count": null
                  }
                ],
                "actions": {
                  "allowed": [
                    "read"
                  ],
                  "blocked": [
                    "activate_distribution",
                    "pause_channel",
                    "resume_channel"
                  ]
                }
              }
            ],
            "public_safety": {
              "channel_status_returned": true,
              "lead_counts_returned": false,
              "customer_pii_returned": false,
              "owner_contact_returned": false,
              "contact_export_returned": false,
              "routing_data_returned": false,
              "raw_channel_config_returned": false,
              "distribution_controls_returned": false
            }
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "granted_agent_scopes": [
              "agent.distribution.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_agent_identity": "deferred"
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "sandbox",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "CurrentAgentLeadsSandbox": {
        "summary": "Sandbox current agent lead status",
        "value": {
          "leads": {
            "agent_id": "sandbox-agent-primary",
            "summary": {
              "total_leads": 3,
              "new_leads": 1,
              "contacted_leads": 1,
              "qualified_leads": 1,
              "archived_leads": 0,
              "contact_fields_returned": false
            },
            "leads": [
              {
                "lead_id": "sandbox-lead-queenstown-001",
                "listing_id": "sandbox-listing-queenstown-001",
                "listing_title": "Queenstown Skyline Residence",
                "status": "new",
                "source_channel": "homejourney_sandbox",
                "created_at": "2026-05-15T01:30:00.000Z",
                "redacted_lead_reference": "sandbox-lead-a",
                "intent": "buy",
                "budget_band": "SGD 1.4M-1.6M",
                "timeframe": "0-3 months",
                "consent": {
                  "contact_allowed": false,
                  "marketing_allowed": false,
                  "consent_receipt_returned": false
                },
                "actions": {
                  "allowed": [
                    "read"
                  ],
                  "blocked": [
                    "contact",
                    "export_contact",
                    "reassign",
                    "mark_qualified"
                  ]
                }
              }
            ],
            "public_safety": {
              "customer_pii_returned": false,
              "customer_contact_returned": false,
              "private_notes_returned": false,
              "raw_message_returned": false,
              "owner_contact_returned": false,
              "routing_data_returned": false,
              "contact_export_returned": false,
              "write_controls_returned": false
            }
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "granted_agent_scopes": [
              "agent.leads.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_agent_identity": "deferred"
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "sandbox",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "CurrentAgentViewingsSandbox": {
        "summary": "Sandbox current agent viewing status",
        "value": {
          "viewings": {
            "agent_id": "sandbox-agent-primary",
            "summary": {
              "total_viewings": 3,
              "requested_viewings": 1,
              "confirmed_viewings": 1,
              "completed_viewings": 1,
              "cancelled_viewings": 0,
              "live_calendar_returned": false
            },
            "viewings": [
              {
                "viewing_id": "sandbox-viewing-queenstown-001",
                "listing_id": "sandbox-listing-queenstown-001",
                "listing_title": "Queenstown Skyline Residence",
                "status": "confirmed",
                "scheduled_window": {
                  "start_at": "2026-05-20T02:00:00.000Z",
                  "end_at": "2026-05-20T02:30:00.000Z",
                  "timezone": "Asia/Singapore"
                },
                "request_channel": "homejourney_sandbox",
                "visitor_context": {
                  "reference": "sandbox-party-a",
                  "party_size": 2,
                  "pii_returned": false,
                  "contact_returned": false
                },
                "actions": {
                  "allowed": [
                    "read"
                  ],
                  "blocked": [
                    "confirm",
                    "reschedule",
                    "cancel",
                    "export_contact",
                    "message_visitor"
                  ]
                }
              }
            ],
            "public_safety": {
              "customer_pii_returned": false,
              "customer_contact_returned": false,
              "private_notes_returned": false,
              "owner_contact_returned": false,
              "routing_data_returned": false,
              "live_calendar_returned": false,
              "calendar_write_controls_returned": false
            }
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "granted_agent_scopes": [
              "agent.viewings.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_agent_identity": "deferred"
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "sandbox",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "AgentHostPreparedActionStatusSandbox": {
        "value": {
          "ok": true,
          "action": {
            "id": "00000000-0000-4000-8000-000000000702",
            "action_id": "sandbox_provider_os_confirm_reply_001",
            "vertical_id": "provider_os",
            "host_class": "in_app_ai_host",
            "actor_id": "automation_client:00000000-0000-4000-8000-000000000101",
            "capability": "confirm_provider_ai_reply",
            "description": "Confirm a sandbox Provider OS reply from a prepared host action",
            "status": "prepared",
            "required_scope": "provider_conversations.write",
            "idempotency_key_hash": "sha256:redacted",
            "side_effects_summary": "Creates only Homejourney sandbox review evidence",
            "confirmation_required": true,
            "revocable": true,
            "prepared_at": "2026-07-08T00:05:00.000Z",
            "expires_at": "2026-07-15T00:05:00.000Z",
            "confirmed_at": null,
            "rejected_at": null
          },
          "grant": {
            "grant_id": "00000000-0000-4000-8000-000000000701",
            "host_class": "in_app_ai_host",
            "actor_id": "sandbox-provider-os-host",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "subject_type": "provider_workspace",
            "subject_id": "sandbox-provider-cleaning",
            "status": "active",
            "scopes": [
              "provider_workspace.read",
              "provider_conversations.write"
            ],
            "granted_at": "2026-07-08T00:00:00.000Z",
            "revoked_at": null,
            "revocation_reason": null,
            "tools_hidden": false,
            "future_calls_fail_closed": true
          },
          "safety": {
            "confirmation_required": true,
            "revoked_grant_blocks_execution": false,
            "missing_grant_blocks_execution": false,
            "future_calls_fail_closed": true,
            "tools_hidden": false
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "service_provider",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_agent_host_action"
        }
      },
      "AgentHostGrantRevocationSandbox": {
        "value": {
          "ok": true,
          "revocation": {
            "grant_id": "00000000-0000-4000-8000-000000000701",
            "revoked_by": "api_key",
            "revoked_at": "2026-07-08T01:00:00.000Z",
            "revocation_reason": "Host disconnected by owner",
            "audit_event_id": "req_agent_host_revoke",
            "tools_hidden": true,
            "future_calls_fail_closed": true
          },
          "grant": {
            "grant_id": "00000000-0000-4000-8000-000000000701",
            "host_class": "in_app_ai_host",
            "actor_id": "sandbox-provider-os-host",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "subject_type": "provider_workspace",
            "subject_id": "sandbox-provider-cleaning",
            "status": "revoked",
            "scopes": [
              "provider_workspace.read",
              "provider_conversations.write"
            ],
            "granted_at": "2026-07-08T00:00:00.000Z",
            "revoked_at": "2026-07-08T01:00:00.000Z",
            "revocation_reason": "Host disconnected by owner",
            "tools_hidden": true,
            "future_calls_fail_closed": true
          },
          "already_revoked": false,
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "service_provider",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_agent_host_revoke"
        }
      },
      "CurrentAgencyRosterSandbox": {
        "summary": "Sandbox current agency roster",
        "value": {
          "roster": {
            "agency": {
              "id": "sandbox-agency-demo",
              "name": "Sandbox Realty Pte Ltd",
              "registration_number": "L3000001A",
              "status": "sandbox_active",
              "environment": "sandbox_fixture"
            },
            "summary": {
              "total_agents": 3,
              "active_cea_agents": 2,
              "expired_cea_agents": 1,
              "teams": 2,
              "branches": 2,
              "assistants": 2,
              "crm_integrations": 1,
              "contact_fields_returned": false,
              "private_notes_returned": false,
              "identity_documents_returned": false
            },
            "branches": [
              {
                "branch_id": "sandbox-branch-central",
                "name": "Central Branch",
                "region": "central",
                "team_ids": [
                  "sandbox-team-platform-pilot"
                ]
              }
            ],
            "teams": [
              {
                "team_id": "sandbox-team-platform-pilot",
                "branch_id": "sandbox-branch-central",
                "name": "Platform Pilot Team",
                "lead_agent_id": "sandbox-agent-primary",
                "member_agent_ids": [
                  "sandbox-agent-primary",
                  "sandbox-agent-river-valley"
                ],
                "assistant_ids": [
                  "sandbox-assistant-ops-001"
                ]
              }
            ],
            "agents": [
              {
                "agent_id": "sandbox-agent-primary",
                "display_name": "Sandbox CEA Agent",
                "cea_registration_number": "R123456A",
                "cea_status": "verified",
                "singpass_verified": true,
                "branch_id": "sandbox-branch-central",
                "team_ids": [
                  "sandbox-team-platform-pilot"
                ],
                "role": "salesperson",
                "allowed_actions": [
                  "read"
                ],
                "blocked_actions": [
                  "publish_as_agent",
                  "activate_distribution",
                  "export_contacts"
                ]
              },
              {
                "agent_id": "sandbox-agent-expired-001",
                "display_name": "Sandbox Expired CEA Agent",
                "cea_registration_number": "R345678C",
                "cea_status": "expired",
                "singpass_verified": false,
                "branch_id": "sandbox-branch-east",
                "team_ids": [
                  "sandbox-team-resale-east"
                ],
                "role": "salesperson",
                "allowed_actions": [
                  "read"
                ],
                "blocked_actions": [
                  "publish_as_agent",
                  "activate_distribution",
                  "export_contacts"
                ]
              }
            ],
            "assistants": [
              {
                "assistant_id": "sandbox-assistant-ops-001",
                "display_role": "operations_assistant",
                "assigned_team_ids": [
                  "sandbox-team-platform-pilot"
                ],
                "delegated": false,
                "allowed_actions": [
                  "read"
                ]
              }
            ],
            "integrations": [
              {
                "integration_client_id": "sandbox-crm-client-001",
                "name": "Sandbox CRM Connector",
                "status": "sandbox_only",
                "scopes": [
                  "agency.roster.read"
                ],
                "delegated_impersonation_allowed": false
              }
            ],
            "public_safety": {
              "contact_fields_returned": false,
              "private_notes_returned": false,
              "customer_pii_returned": false,
              "raw_lead_data_returned": false,
              "raw_client_data_returned": false,
              "identity_documents_returned": false,
              "subscription_receipts_returned": false,
              "billing_identifiers_returned": false,
              "crm_secrets_returned": false,
              "contact_export_returned": false,
              "write_controls_returned": false
            }
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "granted_agency_scopes": [
              "agency.roster.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_agency_identity": "deferred",
            "delegation_model": "explicit_delegation_deferred"
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "agency",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "CurrentAgencyTeamsSandbox": {
        "summary": "Sandbox current agency teams",
        "value": {
          "teams": {
            "agency": {
              "id": "sandbox-agency-demo",
              "name": "Sandbox Realty Pte Ltd",
              "registration_number": "L3000001A",
              "status": "sandbox_active",
              "environment": "sandbox_fixture"
            },
            "summary": {
              "total_teams": 2,
              "total_member_agents": 3,
              "total_assistants": 2,
              "delegated_actions_enabled": false,
              "write_controls_returned": false
            },
            "teams": [
              {
                "team_id": "sandbox-team-platform-pilot",
                "branch": {
                  "branch_id": "sandbox-branch-central",
                  "name": "Central Branch",
                  "region": "central"
                },
                "name": "Platform Pilot Team",
                "lead_agent": {
                  "agent_id": "sandbox-agent-primary",
                  "display_name": "Sandbox CEA Agent",
                  "cea_registration_number": "R123456A",
                  "cea_status": "verified",
                  "singpass_verified": true,
                  "role": "salesperson",
                  "assignment": "lead",
                  "allowed_actions": [
                    "read"
                  ],
                  "blocked_actions": [
                    "publish_as_agent",
                    "activate_distribution",
                    "export_contacts"
                  ]
                },
                "members": [
                  {
                    "agent_id": "sandbox-agent-primary",
                    "display_name": "Sandbox CEA Agent",
                    "cea_registration_number": "R123456A",
                    "cea_status": "verified",
                    "singpass_verified": true,
                    "role": "salesperson",
                    "assignment": "lead",
                    "allowed_actions": [
                      "read"
                    ],
                    "blocked_actions": [
                      "publish_as_agent",
                      "activate_distribution",
                      "export_contacts"
                    ]
                  },
                  {
                    "agent_id": "sandbox-agent-river-valley",
                    "display_name": "Sandbox River Valley Advisor",
                    "cea_registration_number": "R234567B",
                    "cea_status": "verified",
                    "singpass_verified": true,
                    "role": "salesperson",
                    "assignment": "member",
                    "allowed_actions": [
                      "read"
                    ],
                    "blocked_actions": [
                      "publish_as_agent",
                      "activate_distribution",
                      "export_contacts"
                    ]
                  }
                ],
                "assistants": [
                  {
                    "assistant_id": "sandbox-assistant-ops-001",
                    "display_role": "operations_assistant",
                    "delegated": false,
                    "allowed_actions": [
                      "read"
                    ]
                  }
                ],
                "summary": {
                  "member_agents": 2,
                  "verified_agents": 2,
                  "expired_agents": 0,
                  "assistants": 1,
                  "delegated_actions_enabled": false,
                  "write_controls_returned": false
                }
              }
            ],
            "public_safety": {
              "contact_fields_returned": false,
              "private_notes_returned": false,
              "raw_lead_data_returned": false,
              "raw_client_data_returned": false,
              "identity_documents_returned": false,
              "crm_secrets_returned": false,
              "delegated_impersonation_returned": false,
              "write_controls_returned": false
            }
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "granted_agency_scopes": [
              "agency.roster.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_agency_identity": "deferred",
            "delegation_model": "explicit_delegation_deferred"
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "agency",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "PlatformConsentListSandbox": {
        "summary": "Recipient-scoped grants",
        "value": {
          "consents": [
            {
              "id": "6f9b1d2e-0000-4000-8000-0000000003a1",
              "environment": "sandbox",
              "subject_user_id": "6f9b1d2e-0000-4000-8000-0000000005c3",
              "recipient_type": "marketplace_app",
              "recipient_organization_id": "6f9b1d2e-0000-4000-8000-000000000001",
              "recipient_app_id": null,
              "recipient_client_id": null,
              "scope": "saved_properties.read",
              "data_category": "saved_properties",
              "purpose": "personalized_recommendations",
              "purpose_version": "v1",
              "consent_text_version": "v1",
              "source_channel": "oauth",
              "grant_status": "active",
              "is_active": true,
              "last_used_at": null,
              "expires_at": "2030-06-13T00:00:00.000Z",
              "revoked_at": null,
              "revocation_reason": null,
              "superseded_by_grant_id": null,
              "retention_until": "2030-06-13T00:00:00.000Z",
              "created_at": "2026-06-13T00:00:00.000Z",
              "updated_at": "2026-06-13T00:00:00.000Z"
            }
          ],
          "public_safety": {
            "consent_text_returned": false,
            "raw_user_pii_returned": false,
            "internal_audit_ids_returned": false,
            "recipient_billing_returned": false
          },
          "livemode": false,
          "request_id": "req_sandbox_consents"
        }
      },
      "PlatformConsentDetailSandbox": {
        "summary": "Single grant",
        "value": {
          "consent": {
            "id": "6f9b1d2e-0000-4000-8000-0000000003a1",
            "environment": "sandbox",
            "subject_user_id": "6f9b1d2e-0000-4000-8000-0000000005c3",
            "recipient_type": "marketplace_app",
            "recipient_organization_id": "6f9b1d2e-0000-4000-8000-000000000001",
            "recipient_app_id": null,
            "recipient_client_id": null,
            "scope": "saved_properties.read",
            "data_category": "saved_properties",
            "purpose": "personalized_recommendations",
            "purpose_version": "v1",
            "consent_text_version": "v1",
            "source_channel": "oauth",
            "grant_status": "active",
            "is_active": true,
            "last_used_at": null,
            "expires_at": "2030-06-13T00:00:00.000Z",
            "revoked_at": null,
            "revocation_reason": null,
            "superseded_by_grant_id": null,
            "retention_until": "2030-06-13T00:00:00.000Z",
            "created_at": "2026-06-13T00:00:00.000Z",
            "updated_at": "2026-06-13T00:00:00.000Z"
          },
          "public_safety": {
            "consent_text_returned": false,
            "raw_user_pii_returned": false,
            "internal_audit_ids_returned": false,
            "recipient_billing_returned": false
          },
          "livemode": false,
          "request_id": "req_sandbox_consent"
        }
      },
      "PlatformConsentRevokedSandbox": {
        "summary": "Grant relinquished by the recipient",
        "value": {
          "consent": {
            "id": "6f9b1d2e-0000-4000-8000-0000000003a1",
            "environment": "sandbox",
            "subject_user_id": "6f9b1d2e-0000-4000-8000-0000000005c3",
            "recipient_type": "marketplace_app",
            "recipient_organization_id": "6f9b1d2e-0000-4000-8000-000000000001",
            "recipient_app_id": null,
            "recipient_client_id": null,
            "scope": "saved_properties.read",
            "data_category": "saved_properties",
            "purpose": "personalized_recommendations",
            "purpose_version": "v1",
            "consent_text_version": "v1",
            "source_channel": "oauth",
            "grant_status": "revoked",
            "is_active": false,
            "last_used_at": null,
            "expires_at": "2030-06-13T00:00:00.000Z",
            "revoked_at": "2026-06-13T01:00:00.000Z",
            "revocation_reason": "recipient_relinquished",
            "superseded_by_grant_id": null,
            "retention_until": "2030-06-13T00:00:00.000Z",
            "created_at": "2026-06-13T00:00:00.000Z",
            "updated_at": "2026-06-13T00:00:00.000Z"
          },
          "public_safety": {
            "consent_text_returned": false,
            "raw_user_pii_returned": false,
            "internal_audit_ids_returned": false,
            "recipient_billing_returned": false
          },
          "livemode": false,
          "request_id": "req_sandbox_revoke"
        }
      },
      "PlatformDataSharingCenterSandbox": {
        "summary": "Recipient data-sharing center",
        "value": {
          "center": {
            "recipient_organization_id": "6f9b1d2e-0000-4000-8000-000000000001",
            "grants": [
              {
                "id": "6f9b1d2e-0000-4000-8000-0000000003a1",
                "environment": "sandbox",
                "subject_user_id": "6f9b1d2e-0000-4000-8000-0000000005c3",
                "recipient_type": "marketplace_app",
                "recipient_organization_id": "6f9b1d2e-0000-4000-8000-000000000001",
                "recipient_app_id": null,
                "recipient_client_id": null,
                "scope": "saved_properties.read",
                "data_category": "saved_properties",
                "purpose": "personalized_recommendations",
                "purpose_version": "v1",
                "consent_text_version": "v1",
                "source_channel": "oauth",
                "grant_status": "active",
                "is_active": true,
                "last_used_at": null,
                "expires_at": "2030-06-13T00:00:00.000Z",
                "revoked_at": null,
                "revocation_reason": null,
                "superseded_by_grant_id": null,
                "retention_until": "2030-06-13T00:00:00.000Z",
                "created_at": "2026-06-13T00:00:00.000Z",
                "updated_at": "2026-06-13T00:00:00.000Z"
              }
            ],
            "document_shares": [
              {
                "id": "6f9b1d2e-0000-4000-8000-0000000004b2",
                "environment": "sandbox",
                "grant_id": "6f9b1d2e-0000-4000-8000-0000000003a1",
                "subject_user_id": "6f9b1d2e-0000-4000-8000-0000000005c3",
                "recipient_type": "bank",
                "recipient_organization_id": "6f9b1d2e-0000-4000-8000-000000000001",
                "recipient_client_id": null,
                "document_label": "Income documents",
                "data_category": "bank_documents",
                "purpose": "mortgage_application",
                "manifest_summary": {
                  "files": 3,
                  "classification": "income_proof"
                },
                "share_status": "active",
                "handoff_url_ttl_seconds": 900,
                "last_handoff_at": null,
                "expires_at": "2026-06-20T00:00:00.000Z",
                "revoked_at": null,
                "revocation_reason": null,
                "retention_until": "2033-06-20T00:00:00.000Z",
                "created_at": "2026-06-13T00:00:00.000Z",
                "updated_at": "2026-06-13T00:00:00.000Z"
              }
            ],
            "summary": {
              "total_grants": 1,
              "active_grants": 1,
              "revoked_grants": 0,
              "document_shares": 1,
              "active_document_shares": 1
            }
          },
          "public_safety": {
            "consent_text_returned": false,
            "raw_user_pii_returned": false,
            "internal_audit_ids_returned": false,
            "recipient_billing_returned": false
          },
          "livemode": false,
          "request_id": "req_sandbox_center"
        }
      },
      "PlatformDataSharingReceiptsSandbox": {
        "summary": "Consent receipts for a grant",
        "value": {
          "receipts": [
            {
              "id": "6f9b1d2e-0000-4000-8000-0000000006d4",
              "environment": "sandbox",
              "grant_id": "6f9b1d2e-0000-4000-8000-0000000003a1",
              "receipt_status": "issued",
              "subject_user_id": "6f9b1d2e-0000-4000-8000-0000000005c3",
              "recipient_type": "marketplace_app",
              "recipient_display_name": "Sandbox Consent Demo",
              "scope": "saved_properties.read",
              "data_category": "saved_properties",
              "purpose": "personalized_recommendations",
              "consent_text_version": "v1",
              "source_channel": "oauth",
              "issued_at": "2026-06-13T00:00:00.000Z",
              "expires_at": "2030-06-13T00:00:00.000Z",
              "revoked_at": null,
              "support_contact": null,
              "retention_until": "2030-06-13T00:00:00.000Z",
              "created_at": "2026-06-13T00:00:00.000Z"
            }
          ],
          "public_safety": {
            "consent_text_returned": false,
            "raw_user_pii_returned": false,
            "internal_audit_ids_returned": false,
            "recipient_billing_returned": false
          },
          "livemode": false,
          "request_id": "req_sandbox_receipts"
        }
      },
      "PlatformDocumentShareListSandbox": {
        "summary": "Recipient-scoped document shares",
        "value": {
          "document_shares": [
            {
              "id": "6f9b1d2e-0000-4000-8000-0000000004b2",
              "environment": "sandbox",
              "grant_id": "6f9b1d2e-0000-4000-8000-0000000003a1",
              "subject_user_id": "6f9b1d2e-0000-4000-8000-0000000005c3",
              "recipient_type": "bank",
              "recipient_organization_id": "6f9b1d2e-0000-4000-8000-000000000001",
              "recipient_client_id": null,
              "document_label": "Income documents",
              "data_category": "bank_documents",
              "purpose": "mortgage_application",
              "manifest_summary": {
                "files": 3,
                "classification": "income_proof"
              },
              "share_status": "active",
              "handoff_url_ttl_seconds": 900,
              "last_handoff_at": null,
              "expires_at": "2026-06-20T00:00:00.000Z",
              "revoked_at": null,
              "revocation_reason": null,
              "retention_until": "2033-06-20T00:00:00.000Z",
              "created_at": "2026-06-13T00:00:00.000Z",
              "updated_at": "2026-06-13T00:00:00.000Z"
            }
          ],
          "public_safety": {
            "raw_document_content_returned": false,
            "storage_paths_returned": false,
            "permanent_urls_returned": false,
            "internal_audit_ids_returned": false
          },
          "livemode": false,
          "request_id": "req_sandbox_shares"
        }
      },
      "PlatformDocumentShareCreatedSandbox": {
        "summary": "Created document share",
        "value": {
          "document_share": {
            "id": "6f9b1d2e-0000-4000-8000-0000000004b2",
            "environment": "sandbox",
            "grant_id": "6f9b1d2e-0000-4000-8000-0000000003a1",
            "subject_user_id": "6f9b1d2e-0000-4000-8000-0000000005c3",
            "recipient_type": "bank",
            "recipient_organization_id": "6f9b1d2e-0000-4000-8000-000000000001",
            "recipient_client_id": null,
            "document_label": "Income documents",
            "data_category": "bank_documents",
            "purpose": "mortgage_application",
            "manifest_summary": {
              "files": 3,
              "classification": "income_proof"
            },
            "share_status": "active",
            "handoff_url_ttl_seconds": 900,
            "last_handoff_at": null,
            "expires_at": "2026-06-20T00:00:00.000Z",
            "revoked_at": null,
            "revocation_reason": null,
            "retention_until": "2033-06-20T00:00:00.000Z",
            "created_at": "2026-06-13T00:00:00.000Z",
            "updated_at": "2026-06-13T00:00:00.000Z"
          },
          "public_safety": {
            "raw_document_content_returned": false,
            "storage_paths_returned": false,
            "permanent_urls_returned": false,
            "internal_audit_ids_returned": false
          },
          "livemode": false,
          "request_id": "req_sandbox_share_create"
        }
      },
      "PlatformDocumentShareRevokedSandbox": {
        "summary": "Revoked document share",
        "value": {
          "document_share": {
            "id": "6f9b1d2e-0000-4000-8000-0000000004b2",
            "environment": "sandbox",
            "grant_id": "6f9b1d2e-0000-4000-8000-0000000003a1",
            "subject_user_id": "6f9b1d2e-0000-4000-8000-0000000005c3",
            "recipient_type": "bank",
            "recipient_organization_id": "6f9b1d2e-0000-4000-8000-000000000001",
            "recipient_client_id": null,
            "document_label": "Income documents",
            "data_category": "bank_documents",
            "purpose": "mortgage_application",
            "manifest_summary": {
              "files": 3,
              "classification": "income_proof"
            },
            "share_status": "revoked",
            "handoff_url_ttl_seconds": 900,
            "last_handoff_at": null,
            "expires_at": "2026-06-20T00:00:00.000Z",
            "revoked_at": "2026-06-13T01:00:00.000Z",
            "revocation_reason": "recipient_relinquished",
            "retention_until": "2033-06-20T00:00:00.000Z",
            "created_at": "2026-06-13T00:00:00.000Z",
            "updated_at": "2026-06-13T00:00:00.000Z"
          },
          "public_safety": {
            "raw_document_content_returned": false,
            "storage_paths_returned": false,
            "permanent_urls_returned": false,
            "internal_audit_ids_returned": false
          },
          "livemode": false,
          "request_id": "req_sandbox_share_revoke"
        }
      },
      "InsuranceMoveInCaseListSandbox": {
        "value": {
          "cases": [
            {
              "id": "insurance_move_in_case_sandbox_bishan",
              "fixture_id": "bishan_move_in_coordination",
              "journey_stage": "move_in_planning",
              "target_window": "within_30_days",
              "property_context": {
                "planning_area": "Bishan",
                "property_type": "hdb",
                "exact_address_exposed": false,
                "unit_number_exposed": false
              },
              "needs": {
                "insurance": "contents_cover_review",
                "utilities": [
                  "electricity",
                  "internet"
                ],
                "move_in_services": [
                  "mover",
                  "condition_inspection"
                ]
              },
              "consent": {
                "partner_contact_authorized": false,
                "address_share_authorized": false,
                "identity_share_authorized": false
              },
              "source_attribution": {
                "source_type": "sandbox_fixture",
                "freshness_status": "current",
                "fixture_updated_at": "2026-07-19T00:00:00.000Z"
              },
              "redaction": {
                "customer_identity_exposed": false,
                "contact_details_exposed": false,
                "exact_address_exposed": false,
                "policy_or_claim_data_exposed": false,
                "payment_data_exposed": false,
                "partner_credentials_exposed": false
              }
            }
          ],
          "access": {
            "organization_id": "11111111-1111-4111-8111-111111111111",
            "client_id": "22222222-2222-4222-8222-222222222222",
            "granted_scopes": [
              "insurance_move_in.cases.read"
            ],
            "sandbox_fixture_mode": "read_only",
            "live_case_reads": "deferred",
            "blocked_actions": [
              "insurance_quote_or_recommendation",
              "policy_bind_or_change",
              "claim_submission",
              "utility_or_telco_submission",
              "mover_or_inspection_booking",
              "partner_contact",
              "payment_handoff"
            ]
          },
          "livemode": false,
          "request_id": "req_insurance_move_in_cases"
        }
      },
      "InsuranceMoveInPrepareSandbox": {
        "value": {
          "action": "prepare_move_in_service_request_checklist",
          "action_id": "insurance_move_in:prepare_move_in_service_request_checklist:sandbox:abc123",
          "status": "prepared_for_review",
          "required_scope": "insurance_move_in.cases.write",
          "coordination_case": {
            "id": "insurance_move_in_case_sandbox_bishan",
            "fixture_id": "bishan_move_in_coordination",
            "journey_stage": "move_in_planning",
            "target_window": "within_30_days",
            "property_context": {
              "planning_area": "Bishan",
              "property_type": "hdb",
              "exact_address_exposed": false,
              "unit_number_exposed": false
            },
            "needs": {
              "insurance": "contents_cover_review",
              "utilities": [
                "electricity",
                "internet"
              ],
              "move_in_services": [
                "mover",
                "condition_inspection"
              ]
            },
            "consent": {
              "partner_contact_authorized": false,
              "address_share_authorized": false,
              "identity_share_authorized": false
            },
            "source_attribution": {
              "source_type": "sandbox_fixture",
              "freshness_status": "current",
              "fixture_updated_at": "2026-07-19T00:00:00.000Z"
            },
            "redaction": {
              "customer_identity_exposed": false,
              "contact_details_exposed": false,
              "exact_address_exposed": false,
              "policy_or_claim_data_exposed": false,
              "payment_data_exposed": false,
              "partner_credentials_exposed": false
            }
          },
          "prepared_output": {
            "kind": "move_in_service_request_checklist",
            "headline": "Sandbox move-in service checklist prepared for coordinator review",
            "checklist": [
              "Confirm the required service category and broad appointment window",
              "Obtain separate consent before sharing identity, contact, or exact address data",
              "Keep provider contact, booking, payment, and utility submission outside this response"
            ]
          },
          "professional_review": {
            "required": true,
            "reviewer_role": "move_in_coordinator",
            "confirmation_available": false,
            "execution_available": false
          },
          "side_effects": {
            "quote_requested": false,
            "recommendation_returned": false,
            "policy_bound_or_changed": false,
            "claim_submitted": false,
            "service_booking_created": false,
            "appointment_scheduled": false,
            "partner_contacted": false,
            "address_or_identity_shared": false,
            "payment_initiated": false,
            "external_calls_made": false
          },
          "livemode": false,
          "request_id": "req_insurance_move_in_prepare",
          "idempotency_key_hash": "sha256:insurance_move_in_prepare"
        }
      },
      "CurrentAgencyAnalyticsSandbox": {
        "summary": "Sandbox current agency aggregate analytics",
        "value": {
          "analytics": {
            "agency_id": "sandbox-agency-demo",
            "period": {
              "start_date": "2026-05-01",
              "end_date": "2026-05-31",
              "timezone": "Asia/Singapore"
            },
            "listing_metrics": {
              "total_listings": 2,
              "active_listings": 1,
              "draft_listings": 1,
              "published_listings": 1,
              "public_listing_views": 244,
              "saved_listing_count": 11,
              "viewing_request_count": 5
            },
            "roster_metrics": {
              "total_agents": 3,
              "verified_agents": 2,
              "expired_agents": 1,
              "teams": 2,
              "branches": 2,
              "assistants": 2
            },
            "engagement_metrics": {
              "agency_profile_views": 68,
              "listing_share_clicks": 4,
              "inquiry_clicks": 12
            },
            "response_metrics": {
              "median_first_response_minutes": 22,
              "sla_target_minutes": 60,
              "sla_met_rate": 0.88
            },
            "public_safety": {
              "aggregate_only": true,
              "customer_pii_returned": false,
              "customer_contact_returned": false,
              "private_notes_returned": false,
              "raw_lead_rows_returned": false,
              "raw_client_rows_returned": false,
              "raw_event_logs_returned": false
            }
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "granted_agency_scopes": [
              "agency.analytics.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_agency_identity": "deferred",
            "delegation_model": "explicit_delegation_deferred"
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "agency",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "CurrentAgencyAuditEventsSandbox": {
        "summary": "Sandbox current agency audit event summaries",
        "value": {
          "audit_events": {
            "agency": {
              "id": "sandbox-agency-demo",
              "name": "Sandbox Realty Pte Ltd",
              "registration_number": "L3000001A",
              "status": "sandbox_active",
              "environment": "sandbox_fixture"
            },
            "summary": {
              "total_events": 3,
              "returned_events": 3,
              "redaction_version": 1,
              "live_events_included": false,
              "raw_payloads_returned": false,
              "request_headers_returned": false,
              "response_bodies_returned": false,
              "ip_addresses_returned": false,
              "user_agents_returned": false,
              "api_key_digests_returned": false,
              "customer_pii_returned": false
            },
            "events": [
              {
                "audit_event_id": "sandbox-audit-evt-001",
                "occurred_at": "2026-05-15T02:30:00.000Z",
                "category": "agency_access",
                "action": "agency.roster.read",
                "outcome": "allowed",
                "scope": "agency.roster.read",
                "actor": {
                  "actor_type": "api_key",
                  "actor_ref": "sandbox-api-key-client",
                  "delegated": false,
                  "subject_agent_ref": null
                },
                "resource": {
                  "resource_type": "agency",
                  "resource_ref": "sandbox-agency-demo"
                },
                "reason_code": null,
                "metadata": {
                  "request_ref": "req_sandbox_roster_001",
                  "route": "/api/platform/v1/agencies/current/roster",
                  "redaction": "public_safe",
                  "livemode": false,
                  "customer_pii_returned": false,
                  "raw_payload_returned": false
                }
              },
              {
                "audit_event_id": "sandbox-audit-evt-003",
                "occurred_at": "2026-05-15T02:40:00.000Z",
                "category": "agency_delegation",
                "action": "agency.agent.impersonation",
                "outcome": "denied",
                "scope": "agency.audit.read",
                "actor": {
                  "actor_type": "api_key",
                  "actor_ref": "sandbox-api-key-client",
                  "delegated": false,
                  "subject_agent_ref": "sandbox-agent-primary"
                },
                "resource": {
                  "resource_type": "agent",
                  "resource_ref": "sandbox-agent-primary"
                },
                "reason_code": "delegation_required",
                "metadata": {
                  "request_ref": "req_sandbox_delegation_001",
                  "route": "/api/platform/v1/agencies/current/audit-events",
                  "redaction": "public_safe",
                  "livemode": false,
                  "customer_pii_returned": false,
                  "raw_payload_returned": false
                }
              }
            ],
            "public_safety": {
              "synthetic_events_only": true,
              "customer_pii_returned": false,
              "customer_contact_returned": false,
              "private_notes_returned": false,
              "raw_request_payloads_returned": false,
              "raw_response_payloads_returned": false,
              "request_headers_returned": false,
              "response_bodies_returned": false,
              "ip_addresses_returned": false,
              "user_agents_returned": false,
              "api_key_digests_returned": false,
              "delegated_impersonation_allowed": false
            }
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "granted_agency_scopes": [
              "agency.audit.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_agency_identity": "deferred",
            "delegation_model": "explicit_delegation_deferred"
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "agency",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "CurrentAgencyIntegrationsSandbox": {
        "summary": "Sandbox current agency integration metadata",
        "value": {
          "integrations": {
            "agency": {
              "id": "sandbox-agency-demo",
              "name": "Sandbox Realty Pte Ltd",
              "registration_number": "L3000001A",
              "status": "sandbox_active",
              "environment": "sandbox_fixture"
            },
            "summary": {
              "total_integrations": 1,
              "active_integrations": 1,
              "sandbox_only_integrations": 1,
              "delegated_impersonation_allowed": false,
              "live_delivery_enabled": false,
              "crm_secrets_returned": false,
              "oauth_tokens_returned": false,
              "webhook_secrets_returned": false,
              "raw_sync_payloads_returned": false
            },
            "integrations": [
              {
                "integration_client_id": "sandbox-crm-client-001",
                "name": "Sandbox CRM Connector",
                "category": "crm",
                "status": "sandbox_only",
                "scopes": [
                  "agency.roster.read"
                ],
                "allowed_actions": [
                  "read_metadata"
                ],
                "blocked_actions": [
                  "sync_live_contacts",
                  "export_contacts",
                  "impersonate_agents",
                  "rotate_secret",
                  "deliver_webhooks"
                ],
                "delegated_impersonation_allowed": false,
                "last_sync_status": "sandbox_fixture",
                "last_sync_at": null,
                "live_delivery_enabled": false
              }
            ],
            "public_safety": {
              "contact_fields_returned": false,
              "private_notes_returned": false,
              "customer_pii_returned": false,
              "raw_lead_data_returned": false,
              "raw_client_data_returned": false,
              "crm_secrets_returned": false,
              "oauth_tokens_returned": false,
              "webhook_secrets_returned": false,
              "raw_sync_payloads_returned": false,
              "delegated_impersonation_returned": false,
              "write_controls_returned": false
            }
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "granted_agency_scopes": [
              "agency.integrations.manage"
            ],
            "actor_model": "api_key_automation_client",
            "live_agency_identity": "deferred",
            "delegation_model": "explicit_delegation_deferred"
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "agency",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "CurrentAgencyLeadRoutingSandbox": {
        "summary": "Sandbox current agency lead-routing queues",
        "value": {
          "lead_routing": {
            "agency": {
              "id": "sandbox-agency-demo",
              "name": "Sandbox Realty Pte Ltd",
              "registration_number": "L3000001A",
              "status": "sandbox_active",
              "environment": "sandbox_fixture"
            },
            "summary": {
              "total_queues": 2,
              "open_lead_references": 3,
              "routed_lead_references": 2,
              "manual_review_references": 1,
              "live_routing_enabled": false,
              "routing_mutations_enabled": false,
              "contact_fields_returned": false,
              "raw_messages_returned": false,
              "customer_pii_returned": false
            },
            "queues": [
              {
                "queue_id": "sandbox-lead-queue-unassigned",
                "name": "Sandbox Unassigned Leads",
                "status": "sandbox_only",
                "branch_id": "sandbox-branch-central",
                "team_id": "sandbox-team-platform-pilot",
                "lead_references": [
                  "lead_ref_sandbox_001",
                  "lead_ref_sandbox_002"
                ],
                "lead_count": 2,
                "oldest_lead_age_minutes": 18,
                "allowed_actions": [
                  "read"
                ],
                "blocked_actions": [
                  "route_live_lead",
                  "reassign_agent",
                  "export_contacts",
                  "view_raw_message"
                ]
              }
            ],
            "routing_rules": [
              {
                "rule_id": "sandbox-routing-rule-round-robin",
                "name": "Sandbox round robin",
                "status": "sandbox_only",
                "match_type": "property_region",
                "target_team_id": "sandbox-team-platform-pilot",
                "target_agent_id": null,
                "priority": 10,
                "live_routing_enabled": false,
                "allowed_actions": [
                  "read"
                ],
                "blocked_actions": [
                  "activate_rule",
                  "route_live_lead",
                  "change_priority"
                ]
              }
            ],
            "public_safety": {
              "lead_references_redacted": true,
              "contact_fields_returned": false,
              "customer_pii_returned": false,
              "customer_contact_returned": false,
              "raw_messages_returned": false,
              "private_notes_returned": false,
              "owner_contact_returned": false,
              "routing_mutations_returned": false,
              "delegated_impersonation_returned": false,
              "write_controls_returned": false
            }
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "granted_agency_scopes": [
              "agency.leads.route"
            ],
            "actor_model": "api_key_automation_client",
            "live_agency_identity": "deferred",
            "delegation_model": "explicit_delegation_deferred"
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "agency",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "CurrentAgencyListingsSandbox": {
        "summary": "Sandbox current agency listing portfolio",
        "value": {
          "listings": [
            {
              "id": "sandbox-listing-queenstown-001",
              "title": "Queenstown Skyline Residence",
              "property_type": "condo",
              "district": "D03",
              "approximate_location": "Queenstown MRT area",
              "price": 1380000,
              "bedrooms": 3,
              "bathrooms": 2,
              "square_feet": 980,
              "public_media_url": "https://cdn.homejourney.sg/platform/sandbox/queenstown-001.jpg",
              "source_updated_at": "2026-05-14T00:00:00.000Z",
              "freshness_status": "fresh",
              "livemode": false,
              "agency_listing_status": "active",
              "publish_state": "published",
              "distribution_state": "active",
              "team_ids": [
                "sandbox-team-platform-pilot"
              ],
              "allowed_actions": [
                "read"
              ],
              "blocked_actions": [
                "publish_as_agent",
                "activate_distribution",
                "change_owner",
                "export_contacts"
              ],
              "owner_agent": {
                "agent_id": "sandbox-agent-primary",
                "display_name": "Sandbox CEA Agent",
                "cea_registration_number": "R123456A",
                "cea_status": "verified",
                "singpass_verified": true
              },
              "branch": {
                "branch_id": "sandbox-branch-central",
                "name": "Central Branch",
                "region": "central"
              },
              "ownership": {
                "agency_id": "sandbox-agency-demo",
                "source": "sandbox_fixture",
                "delegated": false
              }
            },
            {
              "id": "sandbox-listing-tampines-001",
              "title": "Tampines Green Court",
              "property_type": "hdb",
              "district": "D18",
              "approximate_location": "Tampines Central area",
              "price": 715000,
              "bedrooms": 4,
              "bathrooms": 2,
              "square_feet": 1184,
              "public_media_url": "https://cdn.homejourney.sg/platform/sandbox/tampines-001.jpg",
              "source_updated_at": "2026-05-14T00:00:00.000Z",
              "freshness_status": "fresh",
              "livemode": false,
              "agency_listing_status": "draft",
              "publish_state": "draft",
              "distribution_state": "unpublished",
              "team_ids": [
                "sandbox-team-resale-east"
              ],
              "allowed_actions": [
                "read"
              ],
              "blocked_actions": [
                "publish_as_agent",
                "activate_distribution",
                "change_owner",
                "export_contacts"
              ],
              "owner_agent": {
                "agent_id": "sandbox-agent-expired-001",
                "display_name": "Sandbox Expired CEA Agent",
                "cea_registration_number": "R345678C",
                "cea_status": "expired",
                "singpass_verified": false
              },
              "branch": {
                "branch_id": "sandbox-branch-east",
                "name": "East Branch",
                "region": "east"
              },
              "ownership": {
                "agency_id": "sandbox-agency-demo",
                "source": "sandbox_fixture",
                "delegated": false
              }
            }
          ],
          "pagination": {
            "limit": 50,
            "next_cursor": null
          },
          "portfolio_summary": {
            "total": 2,
            "active": 1,
            "draft": 1,
            "expired_agent_owned": 1,
            "delegated_actions_enabled": false,
            "write_controls_returned": false
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "granted_agency_scopes": [
              "agency.listings.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_agency_identity": "deferred",
            "delegation_model": "explicit_delegation_deferred"
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "agency",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "public_safety": {
            "listing_fields": "public_safe",
            "private_notes_returned": false,
            "owner_contact_returned": false,
            "source_agent_contact_returned": false,
            "routing_data_returned": false,
            "distribution_controls_returned": false,
            "raw_crm_data_returned": false
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "CurrentAgencyMembersSandbox": {
        "summary": "Sandbox current agency members",
        "value": {
          "members": {
            "agency": {
              "id": "sandbox-agency-demo",
              "name": "Sandbox Realty Pte Ltd",
              "registration_number": "L3000001A",
              "status": "sandbox_active",
              "environment": "sandbox_fixture"
            },
            "summary": {
              "total_members": 5,
              "agents": 3,
              "assistants": 2,
              "verified_agents": 2,
              "expired_agents": 1,
              "delegated_members": 0,
              "contact_fields_returned": false,
              "private_notes_returned": false
            },
            "agents": [
              {
                "member_type": "agent",
                "agent_id": "sandbox-agent-primary",
                "display_name": "Sandbox CEA Agent",
                "cea_registration_number": "R123456A",
                "cea_status": "verified",
                "singpass_verified": true,
                "branch": {
                  "branch_id": "sandbox-branch-central",
                  "name": "Central Branch",
                  "region": "central"
                },
                "team_ids": [
                  "sandbox-team-platform-pilot"
                ],
                "role": "salesperson",
                "delegated": false,
                "allowed_actions": [
                  "read"
                ],
                "blocked_actions": [
                  "publish_as_agent",
                  "activate_distribution",
                  "export_contacts"
                ]
              },
              {
                "member_type": "agent",
                "agent_id": "sandbox-agent-expired-001",
                "display_name": "Sandbox Expired CEA Agent",
                "cea_registration_number": "R345678C",
                "cea_status": "expired",
                "singpass_verified": false,
                "branch": {
                  "branch_id": "sandbox-branch-east",
                  "name": "East Branch",
                  "region": "east"
                },
                "team_ids": [
                  "sandbox-team-resale-east"
                ],
                "role": "salesperson",
                "delegated": false,
                "allowed_actions": [
                  "read"
                ],
                "blocked_actions": [
                  "publish_as_agent",
                  "activate_distribution",
                  "export_contacts"
                ]
              }
            ],
            "assistants": [
              {
                "member_type": "assistant",
                "assistant_id": "sandbox-assistant-ops-001",
                "display_role": "operations_assistant",
                "assigned_team_ids": [
                  "sandbox-team-platform-pilot"
                ],
                "delegated": false,
                "allowed_actions": [
                  "read"
                ],
                "blocked_actions": [
                  "impersonate_agent",
                  "export_contacts",
                  "manage_billing"
                ]
              }
            ],
            "public_safety": {
              "contact_fields_returned": false,
              "private_notes_returned": false,
              "raw_lead_data_returned": false,
              "raw_client_data_returned": false,
              "identity_documents_returned": false,
              "subscription_receipts_returned": false,
              "billing_identifiers_returned": false,
              "delegated_impersonation_returned": false,
              "write_controls_returned": false
            }
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "granted_agency_scopes": [
              "agency.roster.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_agency_identity": "deferred",
            "delegation_model": "explicit_delegation_deferred"
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "agency",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "PlatformBankApplicationListSandbox": {
        "summary": "Sandbox bank application list",
        "value": {
          "applications": [
            {
              "application": {
                "id": "bank_sandbox_missing_document_application",
                "sandbox_fixture_id": "missing_document_application",
                "application_state": "missing_document",
                "bank_display_name": "Sandbox Bank",
                "borrower_reference": "borrower:missing_document_application",
                "consent_text_version": "bank-sandbox-v1",
                "document_manifest_required": true,
                "raw_application_data_exposed": false,
                "livemode": false,
                "updated_at": "2026-05-20T00:00:00.000Z"
              },
              "status": {
                "application_state": "missing_document",
                "safe_display_label": "Missing documents",
                "borrower_action_required": true,
                "next_action": "upload_required_documents",
                "document_manifest_available": true,
                "callback_requested": false,
                "live_bank_system_synced": false
              }
            },
            {
              "application": {
                "id": "bank_sandbox_approved_application",
                "sandbox_fixture_id": "approved_application",
                "application_state": "approved",
                "bank_display_name": "Sandbox Bank",
                "borrower_reference": "borrower:approved_application",
                "consent_text_version": "bank-sandbox-v1",
                "document_manifest_required": true,
                "raw_application_data_exposed": false,
                "livemode": false,
                "updated_at": "2026-05-20T00:00:00.000Z"
              },
              "status": {
                "application_state": "approved",
                "safe_display_label": "Approved",
                "borrower_action_required": false,
                "next_action": "application_closed",
                "document_manifest_available": true,
                "callback_requested": false,
                "live_bank_system_synced": false
              }
            },
            {
              "application": {
                "id": "bank_sandbox_rejected_application",
                "sandbox_fixture_id": "rejected_application",
                "application_state": "rejected",
                "bank_display_name": "Sandbox Bank",
                "borrower_reference": "borrower:rejected_application",
                "consent_text_version": "bank-sandbox-v1",
                "document_manifest_required": true,
                "raw_application_data_exposed": false,
                "livemode": false,
                "updated_at": "2026-05-20T00:00:00.000Z"
              },
              "status": {
                "application_state": "rejected",
                "safe_display_label": "Rejected",
                "borrower_action_required": false,
                "next_action": "application_closed",
                "document_manifest_available": true,
                "callback_requested": false,
                "live_bank_system_synced": false
              }
            }
          ],
          "application_boundary": {
            "sandbox_only": true,
            "status_metadata_only": true,
            "bank_secrets_redacted": true,
            "raw_application_data_redacted": true,
            "raw_myinfo_redacted": true,
            "credit_bureau_data_redacted": true,
            "raw_document_contents_redacted": true,
            "nric_fin_redacted": true,
            "income_proof_contents_redacted": true,
            "bank_statement_contents_redacted": true,
            "application_create_dry_run": true,
            "provider_submission_deferred": true,
            "application_write_deferred": true,
            "status_write_deferred": true,
            "callback_delivery_deferred": true,
            "application_persisted": false
          },
          "application_count": 3,
          "side_effects": {
            "live_callback_sent": false,
            "email_sent": false,
            "sms_sent": false,
            "whatsapp_sent": false,
            "document_link_sent": false,
            "bank_system_write_performed": false,
            "payment_event_created": false,
            "production_webhook_sent": false
          },
          "livemode": false,
          "request_id": "req_bank_application_list"
        }
      },
      "PlatformBankApplicationStatusSandbox": {
        "summary": "Sandbox bank application status",
        "value": {
          "application": {
            "id": "bank_sandbox_missing_document_application",
            "sandbox_fixture_id": "missing_document_application",
            "application_state": "missing_document",
            "bank_display_name": "Sandbox Bank",
            "borrower_reference": "borrower:missing_document_application",
            "consent_text_version": "bank-sandbox-v1",
            "document_manifest_required": true,
            "raw_application_data_exposed": false,
            "livemode": false,
            "updated_at": "2026-05-20T00:00:00.000Z"
          },
          "status": {
            "application_state": "missing_document",
            "safe_display_label": "Missing documents",
            "borrower_action_required": true,
            "next_action": "upload_required_documents",
            "document_manifest_available": true,
            "callback_requested": false,
            "live_bank_system_synced": false
          },
          "application_boundary": {
            "sandbox_only": true,
            "status_metadata_only": true,
            "bank_secrets_redacted": true,
            "raw_application_data_redacted": true,
            "raw_myinfo_redacted": true,
            "credit_bureau_data_redacted": true,
            "raw_document_contents_redacted": true,
            "nric_fin_redacted": true,
            "income_proof_contents_redacted": true,
            "bank_statement_contents_redacted": true,
            "application_create_dry_run": true,
            "provider_submission_deferred": true,
            "application_write_deferred": true,
            "status_write_deferred": true,
            "callback_delivery_deferred": true,
            "application_persisted": false
          },
          "side_effects": {
            "live_callback_sent": false,
            "email_sent": false,
            "sms_sent": false,
            "whatsapp_sent": false,
            "document_link_sent": false,
            "bank_system_write_performed": false,
            "payment_event_created": false,
            "production_webhook_sent": false
          },
          "livemode": false,
          "request_id": "req_bank_application_status"
        }
      },
      "PlatformBankApplicationCreateSandbox": {
        "summary": "Sandbox bank application create dry-run",
        "value": {
          "application": {
            "id": "bank_sandbox_missing_document_application",
            "sandbox_fixture_id": "missing_document_application",
            "application_state": "missing_document",
            "bank_display_name": "Sandbox Bank",
            "borrower_reference": "borrower:missing_document_application",
            "consent_text_version": "bank-sandbox-v1",
            "document_manifest_required": true,
            "raw_application_data_exposed": false,
            "livemode": false,
            "updated_at": "2026-05-20T00:00:00.000Z"
          },
          "status": {
            "application_state": "missing_document",
            "safe_display_label": "Missing documents",
            "borrower_action_required": true,
            "next_action": "upload_required_documents",
            "document_manifest_available": true,
            "callback_requested": false,
            "live_bank_system_synced": false
          },
          "application_intake": {
            "borrower_fixture_id": "eligible_borrower",
            "product_code": "SANDBOX_FIXED_HOME",
            "consent_text_version": "bank-sandbox-v1",
            "consent_categories": [
              "eligibility_summary",
              "document_manifest_metadata"
            ],
            "document_manifest_next_action": "review_document_requirements",
            "application_create_dry_run": true,
            "application_persisted": false,
            "submitted_to_bank": false,
            "provider_call_performed": false,
            "raw_borrower_data_exposed": false,
            "livemode": false
          },
          "prepared_action": {
            "action_id": "mortgage_bank_application_review:client:application:redacted",
            "status": "prepared",
            "required_scope": "banks.applications.write",
            "required_confirmation": "first_party_app",
            "idempotency_required": true,
            "expires_at": "2026-07-14T04:30:00.000Z",
            "side_effects": {
              "prepared_action_created": true,
              "action_prepared_event_created": true,
              "application_persisted": false,
              "bank_system_write_performed": false,
              "callback_delivered": false,
              "raw_application_data_exposed": false,
              "raw_myinfo_exposed": false,
              "raw_document_contents_exposed": false
            },
            "consent_boundary": {
              "consent_text_version": "bank-sandbox-v1",
              "consent_categories": [
                "eligibility_summary",
                "document_manifest_metadata"
              ],
              "document_manifest_metadata_only": true,
              "signed_document_handoff_available": false
            },
            "safety": {
              "delegated": false,
              "api_confirmation_allowed": false,
              "api_rejection_allowed": false
            },
            "continuation": {
              "url": "https://homejourney.sg/console/o/bank/platform/mortgage-actions/mortgage_bank_application_review%3Aredacted",
              "handoff_required": true,
              "reason": "first_party_confirmation_required"
            },
            "principal": {
              "type": "automation_client",
              "actor_type": "api_key",
              "environment": "sandbox",
              "organization_id": "00000000-0000-4000-8000-000000000001",
              "organization_type": "bank",
              "client_id": "00000000-0000-4000-8000-000000000101",
              "api_key_id": "00000000-0000-4000-8000-000000000201",
              "user_id": null,
              "subject_user_id": null,
              "agent_id": null,
              "subject_agent_id": null,
              "agency_id": null,
              "team_id": null,
              "delegation_id": null,
              "delegated": false
            }
          },
          "application_boundary": {
            "sandbox_only": true,
            "status_metadata_only": true,
            "bank_secrets_redacted": true,
            "raw_application_data_redacted": true,
            "raw_myinfo_redacted": true,
            "credit_bureau_data_redacted": true,
            "raw_document_contents_redacted": true,
            "nric_fin_redacted": true,
            "income_proof_contents_redacted": true,
            "bank_statement_contents_redacted": true,
            "application_create_dry_run": true,
            "provider_submission_deferred": true,
            "application_write_deferred": true,
            "status_write_deferred": true,
            "callback_delivery_deferred": true,
            "application_persisted": false
          },
          "side_effects": {
            "live_callback_sent": false,
            "email_sent": false,
            "sms_sent": false,
            "whatsapp_sent": false,
            "document_link_sent": false,
            "bank_system_write_performed": false,
            "payment_event_created": false,
            "production_webhook_sent": false
          },
          "idempotency_key_hash": "sha256:bank_application_create_key_hash",
          "livemode": false,
          "request_id": "req_bank_application_create"
        }
      },
      "PlatformBankApplicationStatusUpdateSandbox": {
        "summary": "Sandbox bank application status update dry-run",
        "value": {
          "application": {
            "id": "bank_sandbox_missing_document_application",
            "sandbox_fixture_id": "missing_document_application",
            "application_state": "approved",
            "bank_display_name": "Sandbox Bank",
            "borrower_reference": "borrower:missing_document_application",
            "consent_text_version": "bank-sandbox-v1",
            "document_manifest_required": true,
            "raw_application_data_exposed": false,
            "livemode": false,
            "updated_at": "2026-05-20T00:00:00.000Z"
          },
          "status": {
            "application_state": "approved",
            "safe_display_label": "Approved",
            "borrower_action_required": false,
            "next_action": "application_closed",
            "document_manifest_available": true,
            "callback_requested": false,
            "live_bank_system_synced": false
          },
          "status_transition": {
            "previous_application_state": "missing_document",
            "requested_application_state": "approved",
            "effective_application_state": "approved",
            "status_update_dry_run": true,
            "status_persisted": false,
            "bank_system_write_performed": false,
            "provider_call_performed": false,
            "callback_requested": false,
            "live_bank_system_synced": false
          },
          "application_boundary": {
            "sandbox_only": true,
            "status_metadata_only": true,
            "bank_secrets_redacted": true,
            "raw_application_data_redacted": true,
            "raw_myinfo_redacted": true,
            "credit_bureau_data_redacted": true,
            "raw_document_contents_redacted": true,
            "nric_fin_redacted": true,
            "income_proof_contents_redacted": true,
            "bank_statement_contents_redacted": true,
            "application_create_dry_run": true,
            "provider_submission_deferred": true,
            "application_write_deferred": true,
            "status_write_deferred": true,
            "callback_delivery_deferred": true,
            "application_persisted": false
          },
          "side_effects": {
            "live_callback_sent": false,
            "email_sent": false,
            "sms_sent": false,
            "whatsapp_sent": false,
            "document_link_sent": false,
            "bank_system_write_performed": false,
            "payment_event_created": false,
            "production_webhook_sent": false
          },
          "idempotency_key_hash": "sha256:bank_application_status_key_hash",
          "livemode": false,
          "request_id": "req_bank_application_status_update"
        }
      },
      "PlatformBankCallbackSandbox": {
        "summary": "Sandbox bank callback dry-run",
        "value": {
          "callback": {
            "id": "bank_sandbox_test_delivery",
            "sandbox_fixture_id": "callback_failure",
            "action": "test_delivery",
            "application_id": "bank_sandbox_missing_document_application",
            "event_type": "bank.callback_failed",
            "delivery_state": "dry_run_not_delivered",
            "safe_display_label": "Sandbox callback delivery test captured without delivery",
            "signed_payload_required": true,
            "replay_protection_required": true,
            "idempotency_key_required": true,
            "idempotency_key_hash": "sha256:redacted",
            "redacted_payload_only": true,
            "raw_payload_exposed": false,
            "signing_secret_exposed": false,
            "livemode": false,
            "created_at": "2026-05-20T00:00:00.000Z"
          },
          "callback_boundary": {
            "sandbox_only": true,
            "callback_metadata_only": true,
            "live_callback_delivery_deferred": true,
            "bank_secrets_redacted": true,
            "signing_secret_redacted": true,
            "raw_payload_redacted": true,
            "request_response_bodies_redacted": true,
            "borrower_contact_redacted": true,
            "customer_pii_redacted": true,
            "provider_call_deferred": true,
            "bank_system_write_deferred": true,
            "application_write_deferred": true,
            "mtls_deferred": true,
            "api_gateway_custom_domain_deferred": true,
            "callback_delivery_enabled": false
          },
          "side_effects": {
            "live_callback_sent": false,
            "email_sent": false,
            "sms_sent": false,
            "whatsapp_sent": false,
            "document_link_sent": false,
            "bank_system_write_performed": false,
            "payment_event_created": false,
            "production_webhook_sent": false
          },
          "livemode": false,
          "request_id": "req_bank_callback"
        }
      },
      "PlatformBankEligibilitySandbox": {
        "summary": "Sandbox bank eligibility check",
        "value": {
          "eligibility": {
            "id": "bank_sandbox_eligible_borrower_eligibility",
            "sandbox_fixture_id": "eligible_borrower",
            "result": "eligible",
            "safe_display_label": "Eligible for sandbox pre-approval",
            "eligible_product_codes": [
              "SANDBOX_FIXED_HOME",
              "SANDBOX_SORA_HOME"
            ],
            "maximum_loan_amount_sgd": 1200000,
            "minimum_cash_downpayment_percent": 5,
            "next_action": "continue_application",
            "consent_text_version": "bank-sandbox-v1",
            "raw_borrower_data_exposed": false,
            "livemode": false,
            "updated_at": "2026-05-20T00:00:00.000Z"
          },
          "eligibility_boundary": {
            "sandbox_only": true,
            "eligibility_summary_only": true,
            "financial_conduct_boundary_enforced": true,
            "advice_like_recommendations_deferred": true,
            "live_bank_decisioning_deferred": true,
            "bank_secrets_redacted": true,
            "raw_myinfo_redacted": true,
            "full_financial_profile_redacted": true,
            "credit_bureau_data_redacted": true,
            "bank_statement_contents_redacted": true,
            "raw_document_contents_redacted": true,
            "borrower_personal_identifiers_redacted": true,
            "borrower_specific_pricing_deferred": true,
            "live_quote_generation_deferred": true,
            "application_create_deferred": true,
            "callback_delivery_deferred": true
          },
          "consent": {
            "consent_text_version": "bank-sandbox-v1",
            "data_category": "eligibility_summary",
            "purpose": "mortgage_application_or_refinance_assessment",
            "consent_text_version_required": true,
            "raw_myinfo_exposed": false,
            "full_financial_profile_exposed": false
          },
          "side_effects": {
            "live_callback_sent": false,
            "email_sent": false,
            "sms_sent": false,
            "whatsapp_sent": false,
            "document_link_sent": false,
            "bank_system_write_performed": false,
            "payment_event_created": false,
            "production_webhook_sent": false
          },
          "livemode": false,
          "request_id": "req_bank_eligibility"
        }
      },
      "PlatformBankFrontendConfigSandbox": {
        "summary": "Sandbox bank frontend config",
        "value": {
          "frontend_config": {
            "id": "bank_sandbox_frontend_config",
            "sandbox_fixture_id": "retail_bank_frontend",
            "display_name": "Sandbox Bank Frontend Configuration",
            "environment": "sandbox",
            "supported_deployment_modes": [
              {
                "mode": "bank_hosted_frontend",
                "sandbox_fixture_id": "retail_bank_frontend",
                "enabled": true,
                "status": "sandbox_ready",
                "public_config_only": true,
                "route_prefix": "/sandbox/banks/current"
              },
              {
                "mode": "homejourney_hosted_white_label",
                "sandbox_fixture_id": "broker_frontend",
                "enabled": true,
                "status": "sandbox_ready",
                "public_config_only": true,
                "route_prefix": "/sandbox/brokers/current"
              }
            ],
            "widget_security": {
              "signed_widget_id_required": true,
              "allowed_origins_required": true,
              "scoped_cors_required": true,
              "allowed_origins": [
                "https://sandbox-bank.homejourney.sg"
              ],
              "bank_secrets_in_browser_config": false
            },
            "consent": {
              "consent_text_version": "bank-sandbox-v1",
              "data_categories": [
                "borrower_contact_summary",
                "eligibility_summary",
                "product_rate_summary",
                "application_status",
                "document_manifest_metadata"
              ],
              "purpose": "mortgage_application_or_refinance_assessment",
              "expiry_required": true,
              "revocation_supported": true,
              "raw_myinfo_exposed": false,
              "full_financial_profile_exposed": false
            },
            "staff_boundary": {
              "borrower_token_staff_actions_allowed": false,
              "partner_identity_required": true,
              "supported_roles": [
                "relationship_manager",
                "checker"
              ]
            },
            "document_manifest_boundary": {
              "signed_handoff_url_required": true,
              "raw_document_contents_exposed": false,
              "income_proof_exposed": false,
              "bank_statement_exposed": false,
              "credit_bureau_data_exposed": false,
              "nric_fin_exposed": false
            },
            "callback_contract": {
              "signed_payload_required": true,
              "replay_protection_required": true,
              "idempotency_keys_required": true,
              "callback_delivery_enabled": false,
              "supported_events": [
                "bank.application_created",
                "bank.document_requested",
                "bank.document_uploaded",
                "bank.application_submitted",
                "bank.status_changed",
                "bank.approval_pending",
                "bank.approval_rejected",
                "bank.approval_accepted",
                "bank.callback_requested",
                "bank.callback_failed"
              ]
            },
            "enterprise_ingress": {
              "mtls": "deferred",
              "ip_allowlist": "deferred",
              "private_ingress": "deferred",
              "api_gateway_custom_domain": "deferred",
              "tofu_required": true
            },
            "data_minimization": {
              "raw_myinfo_exposed": false,
              "credit_bureau_data_exposed": false,
              "bank_statement_exposed": false,
              "raw_document_contents_exposed": false,
              "nric_fin_exposed": false,
              "income_proof_exposed": false,
              "bank_secrets_exposed": false
            },
            "side_effects": {
              "live_callback_sent": false,
              "email_sent": false,
              "sms_sent": false,
              "whatsapp_sent": false,
              "document_link_sent": false,
              "bank_system_write_performed": false,
              "payment_event_created": false,
              "production_webhook_sent": false
            },
            "livemode": false,
            "updated_at": "2026-05-20T00:00:00.000Z"
          },
          "frontend_boundary": {
            "sandbox_only": true,
            "live_promotion_required": true,
            "financial_conduct_boundary_enforced": true,
            "advice_like_recommendations_deferred": true,
            "live_bank_decisioning_deferred": true,
            "bank_secrets_redacted": true,
            "raw_borrower_data_redacted": true,
            "staff_actions_deferred": true,
            "callback_delivery_deferred": true,
            "document_handoff_deferred": true,
            "enterprise_ingress_deferred": true,
            "private_pilot_status_posture": "private_first"
          },
          "livemode": false,
          "request_id": "req_bank_frontend_config"
        }
      },
      "PlatformBankProductListSandbox": {
        "summary": "Sandbox bank products",
        "value": {
          "products": [
            {
              "id": "bank_sandbox_fixed_home_loan",
              "sandbox_fixture_id": "product_rate_catalogue",
              "product_code": "SANDBOX_FIXED_HOME",
              "display_name": "Sandbox Fixed Home Loan",
              "product_type": "fixed_rate_home_loan",
              "currency": "SGD",
              "status": "sandbox_available",
              "min_loan_amount_sgd": 100000,
              "max_loan_amount_sgd": 3000000,
              "min_tenure_months": 60,
              "max_tenure_months": 420,
              "supported_property_types": [
                "hdb",
                "executive_condominium",
                "private_residential"
              ],
              "advertised_rate_summary": {
                "rate_count": 2,
                "min_advertised_rate_percent": 2.75,
                "max_advertised_rate_percent": 2.95,
                "rate_types": [
                  "fixed"
                ]
              },
              "public_safe_catalogue": true,
              "bank_secret_exposed": false,
              "borrower_data_required": false,
              "livemode": false,
              "updated_at": "2026-05-20T00:00:00.000Z"
            },
            {
              "id": "bank_sandbox_sora_home_loan",
              "sandbox_fixture_id": "product_rate_catalogue",
              "product_code": "SANDBOX_SORA_HOME",
              "display_name": "Sandbox SORA Home Loan",
              "product_type": "floating_rate_home_loan",
              "currency": "SGD",
              "status": "sandbox_available",
              "min_loan_amount_sgd": 100000,
              "max_loan_amount_sgd": 3000000,
              "min_tenure_months": 60,
              "max_tenure_months": 420,
              "supported_property_types": [
                "hdb",
                "executive_condominium",
                "private_residential"
              ],
              "advertised_rate_summary": {
                "rate_count": 1,
                "min_advertised_rate_percent": 3.1,
                "max_advertised_rate_percent": 3.1,
                "rate_types": [
                  "sora_pegged"
                ]
              },
              "public_safe_catalogue": true,
              "bank_secret_exposed": false,
              "borrower_data_required": false,
              "livemode": false,
              "updated_at": "2026-05-20T00:00:00.000Z"
            }
          ],
          "product_boundary": {
            "sandbox_only": true,
            "public_safe_catalogue": true,
            "bank_secrets_redacted": true,
            "borrower_data_required": false,
            "raw_myinfo_exposed": false,
            "credit_bureau_data_exposed": false,
            "bank_statement_exposed": false,
            "live_quote_generation_deferred": true,
            "application_create_deferred": true,
            "rates_endpoint_deferred": true
          },
          "catalogue_fixture_id": "product_rate_catalogue",
          "product_count": 2,
          "rate_count": 3,
          "side_effects": {
            "live_callback_sent": false,
            "email_sent": false,
            "sms_sent": false,
            "whatsapp_sent": false,
            "document_link_sent": false,
            "bank_system_write_performed": false,
            "payment_event_created": false,
            "production_webhook_sent": false
          },
          "livemode": false,
          "request_id": "req_bank_products"
        }
      },
      "PlatformBankRateListSandbox": {
        "summary": "Sandbox bank rates",
        "value": {
          "rates": [
            {
              "id": "sandbox_fixed_home_fixed_24m",
              "sandbox_fixture_id": "product_rate_catalogue",
              "product_code": "SANDBOX_FIXED_HOME",
              "product_display_name": "Sandbox Fixed Home Loan",
              "rate_code": "FIXED_24M",
              "rate_type": "fixed",
              "currency": "SGD",
              "advertised_rate_percent": 2.75,
              "comparison_rate_label": "Advertised annual interest rate",
              "lock_in_months": 24,
              "minimum_loan_amount_sgd": 100000,
              "maximum_loan_amount_sgd": 3000000,
              "minimum_tenure_months": 60,
              "maximum_tenure_months": 420,
              "supported_property_types": [
                "hdb",
                "executive_condominium",
                "private_residential"
              ],
              "public_safe_rate": true,
              "borrower_specific_pricing": false,
              "live_quote_generated": false,
              "bank_secret_exposed": false,
              "borrower_data_required": false,
              "livemode": false,
              "valid_from": "2026-05-20",
              "valid_until": "2026-06-19",
              "updated_at": "2026-05-20T00:00:00.000Z"
            },
            {
              "id": "sandbox_fixed_home_fixed_36m",
              "sandbox_fixture_id": "product_rate_catalogue",
              "product_code": "SANDBOX_FIXED_HOME",
              "product_display_name": "Sandbox Fixed Home Loan",
              "rate_code": "FIXED_36M",
              "rate_type": "fixed",
              "currency": "SGD",
              "advertised_rate_percent": 2.95,
              "comparison_rate_label": "Advertised annual interest rate",
              "lock_in_months": 36,
              "minimum_loan_amount_sgd": 100000,
              "maximum_loan_amount_sgd": 3000000,
              "minimum_tenure_months": 60,
              "maximum_tenure_months": 420,
              "supported_property_types": [
                "hdb",
                "executive_condominium",
                "private_residential"
              ],
              "public_safe_rate": true,
              "borrower_specific_pricing": false,
              "live_quote_generated": false,
              "bank_secret_exposed": false,
              "borrower_data_required": false,
              "livemode": false,
              "valid_from": "2026-05-20",
              "valid_until": "2026-06-19",
              "updated_at": "2026-05-20T00:00:00.000Z"
            },
            {
              "id": "sandbox_sora_home_sora_3m",
              "sandbox_fixture_id": "product_rate_catalogue",
              "product_code": "SANDBOX_SORA_HOME",
              "product_display_name": "Sandbox SORA Home Loan",
              "rate_code": "SORA_3M",
              "rate_type": "sora_pegged",
              "currency": "SGD",
              "advertised_rate_percent": 3.1,
              "comparison_rate_label": "Advertised annual interest rate",
              "lock_in_months": 0,
              "minimum_loan_amount_sgd": 100000,
              "maximum_loan_amount_sgd": 3000000,
              "minimum_tenure_months": 60,
              "maximum_tenure_months": 420,
              "supported_property_types": [
                "hdb",
                "executive_condominium",
                "private_residential"
              ],
              "public_safe_rate": true,
              "borrower_specific_pricing": false,
              "live_quote_generated": false,
              "bank_secret_exposed": false,
              "borrower_data_required": false,
              "livemode": false,
              "valid_from": "2026-05-20",
              "valid_until": "2026-06-19",
              "updated_at": "2026-05-20T00:00:00.000Z"
            }
          ],
          "rate_boundary": {
            "sandbox_only": true,
            "advertised_rates_only": true,
            "public_safe_rate_table": true,
            "bank_secrets_redacted": true,
            "borrower_data_required": false,
            "borrower_specific_pricing_deferred": true,
            "raw_myinfo_exposed": false,
            "credit_bureau_data_exposed": false,
            "bank_statement_exposed": false,
            "live_quote_generation_deferred": true,
            "application_create_deferred": true
          },
          "catalogue_fixture_id": "product_rate_catalogue",
          "product_count": 2,
          "rate_count": 3,
          "side_effects": {
            "live_callback_sent": false,
            "email_sent": false,
            "sms_sent": false,
            "whatsapp_sent": false,
            "document_link_sent": false,
            "bank_system_write_performed": false,
            "payment_event_created": false,
            "production_webhook_sent": false
          },
          "livemode": false,
          "request_id": "req_bank_rates"
        }
      },
      "PlatformBankStaffListSandbox": {
        "summary": "Sandbox bank staff list",
        "value": {
          "staff": [
            {
              "id": "bank_sandbox_relationship_manager",
              "sandbox_fixture_id": "relationship_manager_staff_user",
              "display_name": "Sandbox Relationship Manager",
              "role": "relationship_manager",
              "team": "mortgage_frontend_sandbox",
              "branch_code": "sandbox-rm",
              "active": true,
              "partner_identity_required": true,
              "borrower_token_staff_actions_allowed": false,
              "raw_staff_profile_exposed": false,
              "contact_fields_exposed": false,
              "livemode": false,
              "updated_at": "2026-05-20T00:00:00.000Z"
            },
            {
              "id": "bank_sandbox_checker",
              "sandbox_fixture_id": "checker_staff_user",
              "display_name": "Sandbox Checker",
              "role": "checker",
              "team": "mortgage_frontend_sandbox",
              "branch_code": "sandbox-checker",
              "active": true,
              "partner_identity_required": true,
              "borrower_token_staff_actions_allowed": false,
              "raw_staff_profile_exposed": false,
              "contact_fields_exposed": false,
              "livemode": false,
              "updated_at": "2026-05-20T00:00:00.000Z"
            }
          ],
          "staff_boundary": {
            "sandbox_only": true,
            "staff_metadata_only": true,
            "bank_secrets_redacted": true,
            "contact_fields_redacted": true,
            "raw_staff_profile_redacted": true,
            "partner_identity_required": true,
            "staff_write_deferred": true,
            "live_staff_directory_deferred": true,
            "borrower_token_staff_actions_allowed": false
          },
          "staff_count": 2,
          "side_effects": {
            "live_callback_sent": false,
            "email_sent": false,
            "sms_sent": false,
            "whatsapp_sent": false,
            "document_link_sent": false,
            "bank_system_write_performed": false,
            "payment_event_created": false,
            "production_webhook_sent": false
          },
          "livemode": false,
          "request_id": "req_bank_staff"
        }
      },
      "PlatformBankAuditEventListSandbox": {
        "summary": "Sandbox bank audit events",
        "value": {
          "audit_events": [
            {
              "id": "bank_sandbox_audit_frontend_config",
              "sandbox_fixture_id": "relationship_manager_staff_user",
              "event_type": "bank.frontend_config.read",
              "actor_type": "bank_staff",
              "actor_role": "relationship_manager",
              "actor_reference": "staff:sandbox-rm",
              "resource_type": "bank_frontend_config",
              "resource_id": "sandbox_bank_frontend_config",
              "outcome": "allowed",
              "safe_summary": "Sandbox bank.frontend_config.read recorded with redacted metadata only.",
              "raw_payload_exposed": false,
              "request_headers_exposed": false,
              "response_body_exposed": false,
              "api_key_digest_exposed": false,
              "customer_pii_exposed": false,
              "livemode": false,
              "created_at": "2026-05-20T00:00:00.000Z"
            },
            {
              "id": "bank_sandbox_audit_eligibility",
              "sandbox_fixture_id": "relationship_manager_staff_user",
              "event_type": "bank.eligibility.checked",
              "actor_type": "bank_staff",
              "actor_role": "relationship_manager",
              "actor_reference": "staff:sandbox-rm",
              "resource_type": "bank_eligibility",
              "resource_id": "sandbox_bank_eligibility",
              "outcome": "allowed",
              "safe_summary": "Sandbox bank.eligibility.checked recorded with redacted metadata only.",
              "raw_payload_exposed": false,
              "request_headers_exposed": false,
              "response_body_exposed": false,
              "api_key_digest_exposed": false,
              "customer_pii_exposed": false,
              "livemode": false,
              "created_at": "2026-05-20T00:00:00.000Z"
            },
            {
              "id": "bank_sandbox_audit_status",
              "sandbox_fixture_id": "relationship_manager_staff_user",
              "event_type": "bank.application.status.read",
              "actor_type": "bank_staff",
              "actor_role": "relationship_manager",
              "actor_reference": "staff:sandbox-rm",
              "resource_type": "bank_application",
              "resource_id": "sandbox_bank_application",
              "outcome": "allowed",
              "safe_summary": "Sandbox bank.application.status.read recorded with redacted metadata only.",
              "raw_payload_exposed": false,
              "request_headers_exposed": false,
              "response_body_exposed": false,
              "api_key_digest_exposed": false,
              "customer_pii_exposed": false,
              "livemode": false,
              "created_at": "2026-05-20T00:00:00.000Z"
            },
            {
              "id": "bank_sandbox_audit_documents",
              "sandbox_fixture_id": "relationship_manager_staff_user",
              "event_type": "bank.document_manifest.read",
              "actor_type": "bank_staff",
              "actor_role": "relationship_manager",
              "actor_reference": "staff:sandbox-rm",
              "resource_type": "bank_document_manifest",
              "resource_id": "sandbox_bank_document_manifest",
              "outcome": "allowed",
              "safe_summary": "Sandbox bank.document_manifest.read recorded with redacted metadata only.",
              "raw_payload_exposed": false,
              "request_headers_exposed": false,
              "response_body_exposed": false,
              "api_key_digest_exposed": false,
              "customer_pii_exposed": false,
              "livemode": false,
              "created_at": "2026-05-20T00:00:00.000Z"
            },
            {
              "id": "bank_sandbox_audit_callback",
              "sandbox_fixture_id": "relationship_manager_staff_user",
              "event_type": "bank.callback.delivery.deferred",
              "actor_type": "automation_client",
              "actor_role": "automation_client",
              "actor_reference": "automation:sandbox-bank",
              "resource_type": "bank_callback",
              "resource_id": "sandbox_bank_callback",
              "outcome": "deferred",
              "safe_summary": "Sandbox bank.callback.delivery.deferred recorded with redacted metadata only.",
              "raw_payload_exposed": false,
              "request_headers_exposed": false,
              "response_body_exposed": false,
              "api_key_digest_exposed": false,
              "customer_pii_exposed": false,
              "livemode": false,
              "created_at": "2026-05-20T00:00:00.000Z"
            }
          ],
          "audit_boundary": {
            "sandbox_only": true,
            "audit_metadata_only": true,
            "bank_secrets_redacted": true,
            "raw_payloads_redacted": true,
            "request_headers_redacted": true,
            "response_bodies_redacted": true,
            "api_key_digests_redacted": true,
            "customer_pii_redacted": true,
            "staff_contact_redacted": true,
            "live_audit_persistence_deferred": true,
            "callback_delivery_deferred": true
          },
          "audit_event_count": 5,
          "side_effects": {
            "live_callback_sent": false,
            "email_sent": false,
            "sms_sent": false,
            "whatsapp_sent": false,
            "document_link_sent": false,
            "bank_system_write_performed": false,
            "payment_event_created": false,
            "production_webhook_sent": false
          },
          "livemode": false,
          "request_id": "req_bank_audit_events"
        }
      },
      "PlatformBankDocumentManifestSandbox": {
        "summary": "Sandbox bank document manifest",
        "value": {
          "application": {
            "id": "bank_sandbox_missing_document_application",
            "sandbox_fixture_id": "missing_document_application",
            "application_state": "missing_document",
            "bank_display_name": "Sandbox Bank",
            "borrower_reference": "borrower:missing_document_application",
            "consent_text_version": "bank-sandbox-v1",
            "document_manifest_required": true,
            "raw_application_data_exposed": false,
            "livemode": false,
            "updated_at": "2026-05-20T00:00:00.000Z"
          },
          "documents": [
            {
              "id": "bank_doc_identity_summary",
              "document_type": "identity_summary",
              "requirement_state": "received",
              "upload_status": "received",
              "review_status": "pending_review",
              "safe_display_label": "Identity summary",
              "consent_category": "document_manifest_metadata",
              "signed_upload_handoff": {
                "available": false,
                "reason": "deferred_until_signed_storage_handoff"
              },
              "signed_download_handoff": {
                "available": false,
                "reason": "deferred_until_signed_storage_handoff"
              },
              "raw_document_contents_exposed": false,
              "permanent_storage_path_exposed": false,
              "nric_fin_exposed": false,
              "income_proof_contents_exposed": false,
              "bank_statement_contents_exposed": false,
              "livemode": false
            },
            {
              "id": "bank_doc_income_notice_summary",
              "document_type": "income_notice_summary",
              "requirement_state": "required",
              "upload_status": "missing",
              "review_status": "not_started",
              "safe_display_label": "Income notice summary",
              "consent_category": "document_manifest_metadata",
              "signed_upload_handoff": {
                "available": false,
                "reason": "deferred_until_signed_storage_handoff"
              },
              "signed_download_handoff": {
                "available": false,
                "reason": "deferred_until_signed_storage_handoff"
              },
              "raw_document_contents_exposed": false,
              "permanent_storage_path_exposed": false,
              "nric_fin_exposed": false,
              "income_proof_contents_exposed": false,
              "bank_statement_contents_exposed": false,
              "livemode": false
            }
          ],
          "document_boundary": {
            "sandbox_only": true,
            "manifest_metadata_only": true,
            "bank_secrets_redacted": true,
            "raw_document_contents_redacted": true,
            "raw_myinfo_redacted": true,
            "credit_bureau_data_redacted": true,
            "nric_fin_redacted": true,
            "income_proof_contents_redacted": true,
            "bank_statement_contents_redacted": true,
            "signed_handoff_urls_deferred": true,
            "application_write_deferred": true,
            "callback_delivery_deferred": true
          },
          "manifest_fixture_id": "document_manifest_redaction",
          "document_count": 2,
          "side_effects": {
            "live_callback_sent": false,
            "email_sent": false,
            "sms_sent": false,
            "whatsapp_sent": false,
            "document_link_sent": false,
            "bank_system_write_performed": false,
            "payment_event_created": false,
            "production_webhook_sent": false
          },
          "livemode": false,
          "request_id": "req_bank_document_manifest"
        }
      },
      "BillingOwnerVisibilityGatesSandbox": {
        "summary": "Read-only billing-owner visibility gates for every launch vertical.",
        "value": {
          "gates": [
            {
              "module_id": "agent",
              "billing_owner": "billing_operations_agent",
              "invoice_contact": "billing+agent@homejourney.sg",
              "billing_account_org_id": "org-agent-launch-billing",
              "billing_account_client_id": "client-agent-launch-billing",
              "required_scope": "platform.billing_owner_visibility.read",
              "runtime_boundary": "read_only_readiness_contract_no_partner_table_reads",
              "decision": "visible_for_billing_owner_review",
              "visibility": "billing_owner_and_internal_finance_only",
              "satisfied_prerequisites": [
                "plan_state",
                "billing_owner",
                "invoice_contact",
                "usage_summary",
                "manual_overage_review"
              ],
              "missing_prerequisites": [],
              "partner_facing_billing_table_reads_allowed": false,
              "raw_payment_payload_visible": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "label": "Agent",
              "workspace_root": "/console/o/[orgId]/agent",
              "usage_summary_test_id": "platform-agent-usage-summary",
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep the billing/usage contract in the launch-readiness suite while runtime billing routes remain observe-only and finance-reviewed."
            },
            {
              "module_id": "agency",
              "billing_owner": "billing_operations_agency",
              "invoice_contact": "billing+agency@homejourney.sg",
              "billing_account_org_id": "org-agency-launch-billing",
              "billing_account_client_id": "client-agency-launch-billing",
              "required_scope": "platform.billing_owner_visibility.read",
              "runtime_boundary": "read_only_readiness_contract_no_partner_table_reads",
              "decision": "visible_for_billing_owner_review",
              "visibility": "billing_owner_and_internal_finance_only",
              "satisfied_prerequisites": [
                "plan_state",
                "billing_owner",
                "invoice_contact",
                "usage_summary",
                "manual_overage_review"
              ],
              "missing_prerequisites": [],
              "partner_facing_billing_table_reads_allowed": false,
              "raw_payment_payload_visible": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "label": "Agency",
              "workspace_root": "/console/o/[orgId]/agency",
              "usage_summary_test_id": "platform-agency-usage-summary",
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep the billing/usage contract in the launch-readiness suite while runtime billing routes remain observe-only and finance-reviewed."
            },
            {
              "module_id": "business",
              "billing_owner": "billing_operations_business",
              "invoice_contact": "billing+business@homejourney.sg",
              "billing_account_org_id": "org-business-launch-billing",
              "billing_account_client_id": "client-business-launch-billing",
              "required_scope": "platform.billing_owner_visibility.read",
              "runtime_boundary": "read_only_readiness_contract_no_partner_table_reads",
              "decision": "visible_for_billing_owner_review",
              "visibility": "billing_owner_and_internal_finance_only",
              "satisfied_prerequisites": [
                "plan_state",
                "billing_owner",
                "invoice_contact",
                "usage_summary",
                "manual_overage_review"
              ],
              "missing_prerequisites": [],
              "partner_facing_billing_table_reads_allowed": false,
              "raw_payment_payload_visible": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "label": "Business",
              "workspace_root": "/console/o/[orgId]/business/overview",
              "usage_summary_test_id": "platform-business-usage-summary",
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep the billing/usage contract in the launch-readiness suite while runtime billing routes remain observe-only and finance-reviewed."
            },
            {
              "module_id": "mortgage",
              "billing_owner": "billing_operations_mortgage",
              "invoice_contact": "billing+mortgage@homejourney.sg",
              "billing_account_org_id": "org-mortgage-launch-billing",
              "billing_account_client_id": "client-mortgage-launch-billing",
              "required_scope": "platform.billing_owner_visibility.read",
              "runtime_boundary": "read_only_readiness_contract_no_partner_table_reads",
              "decision": "visible_for_billing_owner_review",
              "visibility": "billing_owner_and_internal_finance_only",
              "satisfied_prerequisites": [
                "plan_state",
                "billing_owner",
                "invoice_contact",
                "usage_summary",
                "manual_overage_review"
              ],
              "missing_prerequisites": [],
              "partner_facing_billing_table_reads_allowed": false,
              "raw_payment_payload_visible": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "label": "Mortgage",
              "workspace_root": "/console/o/[orgId]/mortgage",
              "usage_summary_test_id": "platform-mortgage-usage-summary",
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep the billing/usage contract in the launch-readiness suite while runtime billing routes remain observe-only and finance-reviewed."
            },
            {
              "module_id": "legal",
              "billing_owner": "billing_operations_legal",
              "invoice_contact": "billing+legal@homejourney.sg",
              "billing_account_org_id": "org-legal-launch-billing",
              "billing_account_client_id": "client-legal-launch-billing",
              "required_scope": "platform.billing_owner_visibility.read",
              "runtime_boundary": "read_only_readiness_contract_no_partner_table_reads",
              "decision": "visible_for_billing_owner_review",
              "visibility": "billing_owner_and_internal_finance_only",
              "satisfied_prerequisites": [
                "plan_state",
                "billing_owner",
                "invoice_contact",
                "usage_summary",
                "manual_overage_review"
              ],
              "missing_prerequisites": [],
              "partner_facing_billing_table_reads_allowed": false,
              "raw_payment_payload_visible": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "label": "Legal",
              "workspace_root": "/console/o/[orgId]/legal",
              "usage_summary_test_id": "platform-legal-usage-summary",
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep the billing/usage contract in the launch-readiness suite while runtime billing routes remain observe-only and finance-reviewed."
            },
            {
              "module_id": "developer",
              "billing_owner": "billing_operations_developer",
              "invoice_contact": "billing+developer@homejourney.sg",
              "billing_account_org_id": "org-developer-launch-billing",
              "billing_account_client_id": "client-developer-launch-billing",
              "required_scope": "platform.billing_owner_visibility.read",
              "runtime_boundary": "read_only_readiness_contract_no_partner_table_reads",
              "decision": "visible_for_billing_owner_review",
              "visibility": "billing_owner_and_internal_finance_only",
              "satisfied_prerequisites": [
                "plan_state",
                "billing_owner",
                "invoice_contact",
                "usage_summary",
                "manual_overage_review"
              ],
              "missing_prerequisites": [],
              "partner_facing_billing_table_reads_allowed": false,
              "raw_payment_payload_visible": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "label": "Developer",
              "workspace_root": "/console/o/[orgId]/developer",
              "usage_summary_test_id": "platform-developer-usage-summary",
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep the billing/usage contract in the launch-readiness suite while runtime billing routes remain observe-only and finance-reviewed."
            },
            {
              "module_id": "renovation",
              "billing_owner": "billing_operations_renovation",
              "invoice_contact": "billing+renovation@homejourney.sg",
              "billing_account_org_id": "org-renovation-launch-billing",
              "billing_account_client_id": "client-renovation-launch-billing",
              "required_scope": "platform.billing_owner_visibility.read",
              "runtime_boundary": "read_only_readiness_contract_no_partner_table_reads",
              "decision": "visible_for_billing_owner_review",
              "visibility": "billing_owner_and_internal_finance_only",
              "satisfied_prerequisites": [
                "plan_state",
                "billing_owner",
                "invoice_contact",
                "usage_summary",
                "manual_overage_review"
              ],
              "missing_prerequisites": [],
              "partner_facing_billing_table_reads_allowed": false,
              "raw_payment_payload_visible": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "label": "Renovation",
              "workspace_root": "/console/o/[orgId]/renovation",
              "usage_summary_test_id": "platform-renovation-usage-summary",
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep the billing/usage contract in the launch-readiness suite while runtime billing routes remain observe-only and finance-reviewed."
            }
          ],
          "summary": {
            "total_verticals": 7,
            "plan_state_visible": 7,
            "billing_owner_visible": 7,
            "invoice_contact_visible": 7,
            "billing_owner_visibility_gates": 7,
            "partner_billing_table_reads_deferred": 7,
            "usage_events_present": 7,
            "customer_visible_usage_summaries": 7,
            "automatic_overage_enforcement_blocked": 7,
            "billing_owner_gate_side_effects_blocked": 7,
            "launch_ready_contracts": 7,
            "source_contract": "vertical_billing_usage_contract",
            "partner_billing_read_model": "deferred_until_rls_partner_read_paths"
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "required_scope": "platform.billing_owner_visibility.read",
            "granted_billing_scopes": [
              "platform.billing_owner_visibility.read"
            ],
            "actor_model": "api_key_automation_client",
            "data_access": "billing_owner_visibility_contract_only",
            "table_access": "no_partner_billing_table_reads",
            "mutation_access": "billing_writes_deferred"
          },
          "public_safety": {
            "partner_billing_table_reads_allowed": false,
            "raw_payment_payload_visible": false,
            "invoice_external_send_allowed": false,
            "payment_collection_allowed": false,
            "quota_enforcement_allowed": false,
            "credential_suspension_allowed": false,
            "external_finance_calls": false,
            "billing_write_mutations_enabled": false
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "service_provider",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_billing_owner_visibility_gates"
        }
      },
      "PlatformDeveloperProjectListSandbox": {
        "summary": "Sandbox developer project list",
        "value": {
          "projects": [
            {
              "id": "developer_sandbox_active_project_primary",
              "sandbox_fixture_id": "active_project_primary",
              "project_slug": "sandbox-riverfront-residences",
              "display_name": "Sandbox Riverfront Residences",
              "developer_organization": {
                "id": "developer_sandbox_organization",
                "display_name": "Sandbox Developer Organization",
                "organization_type": "developer",
                "environment": "sandbox"
              },
              "status": "active",
              "district": "D19",
              "tenure": "99-year leasehold",
              "launch_quarter": "2026-Q2",
              "source_attribution": {
                "source": "official_developer_batch",
                "source_label": "Official developer inventory batch",
                "source_updated_at": "2026-05-18T09:00:00.000Z",
                "last_verified_at": "2026-05-19T01:30:00.000Z",
                "freshness_status": "current",
                "source_precedence": "official_developer_batch",
                "precedence_rank": 1
              },
              "public_inventory_summary": {
                "public_unit_type_count": 5,
                "available_units_label": "50-plus public-safe units",
                "price_range_public": "S$1.2M to S$2.8M",
                "unit_stack_detail_public": false,
                "unit_numbers_redacted": true,
                "stack_identifiers_redacted": true
              },
              "publication": {
                "project_site_status": "deferred",
                "public_page_published": false,
                "browse_compatibility_surface": "existing_browse_project_pages"
              },
              "safety": {
                "buyer_identity_exposed": false,
                "reservation_notes_exposed": false,
                "raw_unit_numbers_exposed": false,
                "internal_margin_exposed": false,
                "raw_source_files_exposed": false,
                "source_credentials_exposed": false,
                "private_crm_notes_exposed": false
              },
              "side_effects": {
                "production_feed_called": false,
                "live_callback_sent": false,
                "public_page_published": false,
                "live_new_launches_mutated": false,
                "sms_sent": false,
                "whatsapp_sent": false,
                "email_sent": false,
                "crm_write_performed": false,
                "calendar_write_performed": false
              },
              "livemode": false,
              "updated_at": "2026-05-19T00:00:00.000Z"
            }
          ],
          "pagination": {
            "limit": 50,
            "next_cursor": null
          },
          "livemode": false,
          "request_id": "req_developer_projects_001"
        }
      },
      "PlatformDeveloperProjectDetailSandbox": {
        "summary": "Sandbox developer project detail",
        "value": {
          "project": {
            "id": "developer_sandbox_active_project_primary",
            "sandbox_fixture_id": "active_project_primary",
            "project_slug": "sandbox-riverfront-residences",
            "display_name": "Sandbox Riverfront Residences",
            "developer_organization": {
              "id": "developer_sandbox_organization",
              "display_name": "Sandbox Developer Organization",
              "organization_type": "developer",
              "environment": "sandbox"
            },
            "status": "active",
            "district": "D19",
            "tenure": "99-year leasehold",
            "launch_quarter": "2026-Q2",
            "source_attribution": {
              "source": "official_developer_batch",
              "source_label": "Official developer inventory batch",
              "source_updated_at": "2026-05-18T09:00:00.000Z",
              "last_verified_at": "2026-05-19T01:30:00.000Z",
              "freshness_status": "current",
              "source_precedence": "official_developer_batch",
              "precedence_rank": 1
            },
            "public_inventory_summary": {
              "public_unit_type_count": 5,
              "available_units_label": "50-plus public-safe units",
              "price_range_public": "S$1.2M to S$2.8M",
              "unit_stack_detail_public": false,
              "unit_numbers_redacted": true,
              "stack_identifiers_redacted": true
            },
            "publication": {
              "project_site_status": "deferred",
              "public_page_published": false,
              "browse_compatibility_surface": "existing_browse_project_pages"
            },
            "safety": {
              "buyer_identity_exposed": false,
              "reservation_notes_exposed": false,
              "raw_unit_numbers_exposed": false,
              "internal_margin_exposed": false,
              "raw_source_files_exposed": false,
              "source_credentials_exposed": false,
              "private_crm_notes_exposed": false
            },
            "side_effects": {
              "production_feed_called": false,
              "live_callback_sent": false,
              "public_page_published": false,
              "live_new_launches_mutated": false,
              "sms_sent": false,
              "whatsapp_sent": false,
              "email_sent": false,
              "crm_write_performed": false,
              "calendar_write_performed": false
            },
            "livemode": false,
            "updated_at": "2026-05-19T00:00:00.000Z",
            "inventory_boundary": {
              "latest_batch_id": "developer_sandbox_official_batch",
              "latest_batch_state": "validated",
              "raw_source_file_exposed": false,
              "unit_level_inventory_deferred": true,
              "price_lists_deferred": true,
              "media_assets_deferred": true,
              "showflat_slots_deferred": true,
              "lead_routing_deferred": true
            },
            "review_gates": {
              "source_precedence_verified": true,
              "freshness_attribution_verified": true,
              "unit_redaction_verified": true,
              "public_site_publish_review_required": true,
              "live_promotion_required": true
            }
          },
          "livemode": false,
          "request_id": "req_developer_project_001"
        }
      },
      "PlatformDeveloperProjectUnitTypeListSandbox": {
        "summary": "Sandbox developer project unit types",
        "value": {
          "project": {
            "id": "developer_sandbox_active_project_primary",
            "project_slug": "sandbox-riverfront-residences",
            "display_name": "Sandbox Riverfront Residences",
            "status": "active",
            "source_attribution": {
              "source": "official_developer_batch",
              "source_label": "Official developer inventory batch",
              "source_updated_at": "2026-05-18T09:00:00.000Z",
              "last_verified_at": "2026-05-19T01:30:00.000Z",
              "freshness_status": "current",
              "source_precedence": "official_developer_batch",
              "precedence_rank": 1
            }
          },
          "unit_types": [
            {
              "id": "developer_sandbox_active_project_primary_2br",
              "sandbox_fixture_id": "active_project_primary_2br",
              "project_id": "developer_sandbox_active_project_primary",
              "unit_type_code": "2br",
              "label": "2-bedroom",
              "bedrooms": 2,
              "bathrooms": 2,
              "floor_area_sqft": {
                "min": 710,
                "max": 829
              },
              "availability": {
                "public_status": "available",
                "available_units_label": "20-plus public-safe units",
                "exact_available_unit_count_exposed": false,
                "unit_numbers_redacted": true,
                "stack_identifiers_redacted": true
              },
              "price_guide": {
                "currency": "SGD",
                "price_range_public": "S$1.62M to S$1.96M",
                "effective_date": "2026-05-18",
                "price_list_publication_status": "deferred",
                "raw_internal_margin_exposed": false,
                "buyer_identity_exposed": false,
                "reservation_notes_exposed": false
              },
              "source_attribution": {
                "source": "official_developer_batch",
                "source_label": "Official developer inventory batch",
                "source_updated_at": "2026-05-18T09:00:00.000Z",
                "last_verified_at": "2026-05-19T01:30:00.000Z",
                "freshness_status": "current",
                "source_precedence": "official_developer_batch",
                "precedence_rank": 1
              },
              "safety": {
                "buyer_identity_exposed": false,
                "reservation_notes_exposed": false,
                "raw_unit_numbers_exposed": false,
                "internal_margin_exposed": false,
                "raw_source_files_exposed": false,
                "source_credentials_exposed": false,
                "private_crm_notes_exposed": false
              },
              "side_effects": {
                "production_feed_called": false,
                "live_callback_sent": false,
                "public_page_published": false,
                "live_new_launches_mutated": false,
                "sms_sent": false,
                "whatsapp_sent": false,
                "email_sent": false,
                "crm_write_performed": false,
                "calendar_write_performed": false
              },
              "livemode": false,
              "updated_at": "2026-05-19T00:00:00.000Z"
            }
          ],
          "pagination": {
            "limit": 50,
            "next_cursor": null
          },
          "inventory_boundary": {
            "public_unit_type_availability_only": true,
            "restricted_unit_stack_detail_deferred": true,
            "price_list_publication_deferred": true,
            "showflat_capacity_deferred": true,
            "live_promotion_required": true
          },
          "livemode": false,
          "request_id": "req_developer_unit_types_001"
        }
      },
      "PlatformDeveloperPriceListListSandbox": {
        "summary": "Sandbox developer project price lists",
        "value": {
          "project": {
            "id": "developer_sandbox_active_project_primary",
            "project_slug": "sandbox-riverfront-residences",
            "display_name": "Sandbox Riverfront Residences",
            "status": "active",
            "source_attribution": {
              "source": "official_developer_batch",
              "source_label": "Official developer inventory batch",
              "source_updated_at": "2026-05-18T09:00:00.000Z",
              "last_verified_at": "2026-05-19T01:30:00.000Z",
              "freshness_status": "current",
              "source_precedence": "official_developer_batch",
              "precedence_rank": 1
            }
          },
          "price_lists": [
            {
              "id": "developer_sandbox_price_list_v3",
              "sandbox_fixture_id": "active_project_primary_price_v3",
              "project_id": "developer_sandbox_active_project_primary",
              "version": 3,
              "status": "published",
              "effective_date": "2026-05-18",
              "currency": "SGD",
              "project_price_range": {
                "min": 1200000,
                "max": 2800000,
                "public_label": "S$1.2M to S$2.8M"
              },
              "unit_type_prices": [
                {
                  "unit_type_code": "2br",
                  "label": "2-bedroom",
                  "price_range": {
                    "min": 1620000,
                    "max": 1960000,
                    "public_label": "S$1.62M to S$1.96M"
                  },
                  "price_per_sqft_range_public": "S$2,282 to S$2,364 psf",
                  "raw_internal_margin_exposed": false,
                  "buyer_identity_exposed": false,
                  "reservation_notes_exposed": false,
                  "unapproved_hold_status_exposed": false
                }
              ],
              "disclaimers": {
                "text": "Sandbox public guide price only. Availability and final pricing require developer confirmation.",
                "version": "sandbox-2026-05"
              },
              "publication": {
                "published_at": "2026-05-18T09:00:00.000Z",
                "superseded_at": null,
                "previous_version_id": "developer_sandbox_price_list_v2",
                "rollback_available": true,
                "rollback_target_id": "developer_sandbox_price_list_v2"
              },
              "source_attribution": {
                "source": "official_developer_batch",
                "source_label": "Official developer inventory batch",
                "source_updated_at": "2026-05-18T09:00:00.000Z",
                "last_verified_at": "2026-05-19T01:30:00.000Z",
                "freshness_status": "current",
                "source_precedence": "official_developer_batch",
                "precedence_rank": 1
              },
              "safety": {
                "raw_internal_margin_exposed": false,
                "buyer_identity_exposed": false,
                "reservation_notes_exposed": false,
                "unapproved_hold_status_exposed": false,
                "raw_unit_numbers_exposed": false,
                "stack_identifiers_exposed": false,
                "raw_source_files_exposed": false,
                "source_credentials_exposed": false
              },
              "side_effects": {
                "production_feed_called": false,
                "live_callback_sent": false,
                "public_page_published": false,
                "live_new_launches_mutated": false,
                "sms_sent": false,
                "whatsapp_sent": false,
                "email_sent": false,
                "crm_write_performed": false,
                "calendar_write_performed": false
              },
              "livemode": false,
              "updated_at": "2026-05-19T02:00:00.000Z"
            }
          ],
          "pagination": {
            "limit": 50,
            "next_cursor": null
          },
          "price_list_boundary": {
            "versioned_publications_only": true,
            "publication_write_deferred": true,
            "rollback_execution_deferred": true,
            "raw_internal_margin_redacted": true,
            "buyer_identity_redacted": true,
            "reservation_notes_redacted": true,
            "unapproved_hold_status_redacted": true,
            "unit_stack_detail_deferred": true,
            "live_promotion_required": true
          },
          "livemode": false,
          "request_id": "req_developer_price_lists_001"
        }
      },
      "PlatformDeveloperInventoryBatchListSandbox": {
        "summary": "Sandbox developer inventory batches",
        "value": {
          "project": {
            "id": "developer_sandbox_active_project_primary",
            "project_slug": "sandbox-riverfront-residences",
            "display_name": "Sandbox Riverfront Residences",
            "status": "active",
            "source_attribution": {
              "source": "official_developer_batch",
              "source_label": "Official developer inventory batch",
              "source_updated_at": "2026-05-18T09:00:00.000Z",
              "last_verified_at": "2026-05-19T01:30:00.000Z",
              "freshness_status": "current",
              "source_precedence": "official_developer_batch",
              "precedence_rank": 1
            }
          },
          "inventory_batches": [
            {
              "id": "developer_sandbox_official_batch",
              "sandbox_fixture_id": "official_inventory_batch",
              "project_id": "developer_sandbox_active_project_primary",
              "batch_kind": "official_inventory_batch",
              "batch_state": "validated",
              "source_attribution": {
                "source": "official_developer_batch",
                "source_label": "Official developer inventory batch",
                "source_updated_at": "2026-05-18T09:00:00.000Z",
                "last_verified_at": "2026-05-19T01:30:00.000Z",
                "freshness_status": "current",
                "source_precedence": "official_developer_batch",
                "precedence_rank": 1
              },
              "source_window": {
                "source_updated_at": "2026-05-18T09:00:00.000Z",
                "last_verified_at": "2026-05-19T01:30:00.000Z",
                "freshness_status": "current",
                "stale_inventory_warning_present": false,
                "approved_homejourney_correction_applied": false,
                "trusted_partner_feed_applied": false,
                "scraper_fallback_used": false
              },
              "validation": {
                "schema_version": "developer_inventory_batch.v1",
                "validation_status": "passed",
                "row_count_label": "public-safe rows",
                "raw_row_count_exposed": false,
                "source_updated_at_present": true,
                "last_verified_at_present": true
              },
              "publication": {
                "ingestion_write_deferred": true,
                "inventory_publish_deferred": true,
                "rollback_target_present": false,
                "rollback_execution_deferred": true,
                "live_new_launches_mutation_deferred": true
              },
              "safety": {
                "raw_source_file_exposed": false,
                "source_credentials_exposed": false,
                "raw_unit_numbers_exposed": false,
                "stack_identifiers_exposed": false,
                "buyer_identity_exposed": false,
                "reservation_notes_exposed": false,
                "internal_margin_exposed": false,
                "crm_destination_exposed": false
              },
              "side_effects": {
                "production_feed_called": false,
                "live_callback_sent": false,
                "public_page_published": false,
                "live_new_launches_mutated": false,
                "sms_sent": false,
                "whatsapp_sent": false,
                "email_sent": false,
                "crm_write_performed": false,
                "calendar_write_performed": false
              },
              "livemode": false,
              "updated_at": "2026-05-19T02:45:00.000Z"
            }
          ],
          "pagination": {
            "limit": 50,
            "next_cursor": null
          },
          "inventory_batch_boundary": {
            "metadata_only": true,
            "upload_write_deferred": true,
            "publish_write_deferred": true,
            "raw_source_files_redacted": true,
            "source_credentials_redacted": true,
            "unit_stack_detail_deferred": true,
            "price_publication_deferred": true,
            "live_promotion_required": true
          },
          "livemode": false,
          "request_id": "req_developer_inventory_batches_001"
        }
      },
      "PlatformDeveloperLeadRoutingSandbox": {
        "summary": "Sandbox developer project lead routing",
        "value": {
          "project": {
            "id": "developer_sandbox_active_project_primary",
            "project_slug": "sandbox-riverfront-residences",
            "display_name": "Sandbox Riverfront Residences",
            "status": "active",
            "source_attribution": {
              "source": "official_developer_batch",
              "source_label": "Official developer inventory batch",
              "source_updated_at": "2026-05-18T09:00:00.000Z",
              "last_verified_at": "2026-05-19T01:30:00.000Z",
              "freshness_status": "current",
              "source_precedence": "official_developer_batch",
              "precedence_rank": 1
            }
          },
          "lead_routing": {
            "routing_profile": {
              "id": "developer_sandbox_lead_routing_success",
              "sandbox_fixture_id": "lead_routing_success",
              "status": "sandbox_only",
              "recipient_model": "developer_appointed_agency_broker_roster",
              "broker_roster_required": true,
              "lead_routing_success_fixture_present": true,
              "crm_delivery_failure_fixture_present": true
            },
            "lead_capture_contract": {
              "project_id_required": true,
              "unit_interest_supported": true,
              "budget_supported": true,
              "preferred_appointment_slot_supported": true,
              "source_page_required": true,
              "campaign_supported": true,
              "consent_text_version_required": true,
              "raw_contact_fields_returned": false,
              "buyer_identity_returned": false
            },
            "routing_destinations": [
              {
                "destination_id": "developer_sandbox_active_project_primary_developer_sales_team",
                "destination_type": "developer_sales_team",
                "display_name": "Developer sales team",
                "status": "sandbox_only",
                "delivery_state": "success",
                "redacted_payload_summary": {
                  "project_reference_included": true,
                  "unit_interest_included": true,
                  "budget_band_included": true,
                  "preferred_slot_included": true,
                  "contact_fields_redacted": true,
                  "raw_message_redacted": true
                },
                "allowed_actions": [
                  "inspect_metadata"
                ],
                "blocked_actions": [
                  "route_live_lead",
                  "export_contact",
                  "retry_crm_delivery"
                ]
              },
              {
                "destination_id": "developer_sandbox_active_project_primary_appointed_agency",
                "destination_type": "appointed_agency",
                "display_name": "Appointed agency queue",
                "status": "sandbox_only",
                "delivery_state": "success",
                "redacted_payload_summary": {
                  "project_reference_included": true,
                  "unit_interest_included": true,
                  "budget_band_included": true,
                  "preferred_slot_included": true,
                  "contact_fields_redacted": true,
                  "raw_message_redacted": true
                },
                "allowed_actions": [
                  "inspect_metadata"
                ],
                "blocked_actions": [
                  "route_live_lead",
                  "export_contact",
                  "retry_crm_delivery"
                ]
              },
              {
                "destination_id": "developer_sandbox_active_project_primary_platform_ops",
                "destination_type": "platform_ops",
                "display_name": "Platform ops review",
                "status": "sandbox_only",
                "delivery_state": "failed",
                "redacted_payload_summary": {
                  "project_reference_included": true,
                  "unit_interest_included": true,
                  "budget_band_included": true,
                  "preferred_slot_included": true,
                  "contact_fields_redacted": true,
                  "raw_message_redacted": true
                },
                "allowed_actions": [
                  "inspect_metadata"
                ],
                "blocked_actions": [
                  "route_live_lead",
                  "export_contact",
                  "retry_crm_delivery"
                ]
              }
            ],
            "crm_delivery": {
              "success_fixture_id": "developer_sandbox_lead_routing_success",
              "failure_fixture_id": "developer_sandbox_crm_delivery_failure",
              "latest_delivery_state": "failed",
              "retryable_failure_present": true,
              "raw_payload_exposed": false,
              "destination_credentials_exposed": false,
              "live_delivery_deferred": true
            },
            "safety": {
              "buyer_identity_exposed": false,
              "contact_fields_exposed": false,
              "raw_messages_exposed": false,
              "private_notes_exposed": false,
              "broker_contact_exposed": false,
              "crm_destination_credentials_exposed": false,
              "raw_crm_payload_exposed": false,
              "routing_mutations_exposed": false,
              "write_controls_exposed": false
            },
            "side_effects": {
              "production_feed_called": false,
              "live_callback_sent": false,
              "public_page_published": false,
              "live_new_launches_mutated": false,
              "sms_sent": false,
              "whatsapp_sent": false,
              "email_sent": false,
              "crm_write_performed": false,
              "calendar_write_performed": false
            }
          },
          "lead_routing_boundary": {
            "metadata_only": true,
            "lead_capture_write_deferred": true,
            "routing_mutation_deferred": true,
            "crm_delivery_write_deferred": true,
            "contact_export_deferred": true,
            "live_promotion_required": true
          },
          "livemode": false,
          "request_id": "req_developer_lead_routing_001"
        }
      },
      "PlatformDeveloperMediaListSandbox": {
        "summary": "Sandbox developer project media assets",
        "value": {
          "project": {
            "id": "developer_sandbox_active_project_primary",
            "project_slug": "sandbox-riverfront-residences",
            "display_name": "Sandbox Riverfront Residences",
            "status": "active",
            "source_attribution": {
              "source": "official_developer_batch",
              "source_label": "Official developer inventory batch",
              "source_updated_at": "2026-05-18T09:00:00.000Z",
              "last_verified_at": "2026-05-19T01:30:00.000Z",
              "freshness_status": "current",
              "source_precedence": "official_developer_batch",
              "precedence_rank": 1
            }
          },
          "media_assets": [
            {
              "id": "developer_sandbox_primary_floor_plan",
              "sandbox_fixture_id": "active_project_primary_floor_plan",
              "project_id": "developer_sandbox_active_project_primary",
              "media_kind": "floor_plan",
              "title": "Riverfront Residences floor plan pack",
              "description": "Public-safe sandbox floor plan overview for unit-type marketing.",
              "language": "en",
              "file": {
                "content_type": "application/pdf",
                "file_size_bytes": 428000,
                "page_count": 8,
                "checksum_sha256_redacted": true
              },
              "public_reference": {
                "url": "https://cdn.homejourney.sg/platform/sandbox/developers/riverfront-floor-plans.pdf",
                "label": "Floor plan PDF",
                "expires_at": null,
                "signed_url_generated": false
              },
              "scan": {
                "status": "clean",
                "scanned_at": "2026-05-19T02:15:00.000Z"
              },
              "source_attribution": {
                "source": "official_developer_batch",
                "source_label": "Official developer inventory batch",
                "source_updated_at": "2026-05-18T09:00:00.000Z",
                "last_verified_at": "2026-05-19T01:30:00.000Z",
                "freshness_status": "current",
                "source_precedence": "official_developer_batch",
                "precedence_rank": 1
              },
              "safety": {
                "private_document_uri_exposed": false,
                "signed_storage_url_exposed": false,
                "raw_source_files_exposed": false,
                "source_credentials_exposed": false,
                "buyer_identity_exposed": false,
                "reservation_notes_exposed": false,
                "document_contents_exposed": false
              },
              "side_effects": {
                "production_feed_called": false,
                "live_callback_sent": false,
                "public_page_published": false,
                "live_new_launches_mutated": false,
                "sms_sent": false,
                "whatsapp_sent": false,
                "email_sent": false,
                "crm_write_performed": false,
                "calendar_write_performed": false
              },
              "livemode": false,
              "updated_at": "2026-05-19T02:30:00.000Z"
            }
          ],
          "pagination": {
            "limit": 50,
            "next_cursor": null
          },
          "media_boundary": {
            "public_safe_references_only": true,
            "signed_download_url_deferred": true,
            "upload_write_deferred": true,
            "raw_source_files_redacted": true,
            "private_document_uri_redacted": true,
            "project_site_publish_deferred": true,
            "live_promotion_required": true
          },
          "livemode": false,
          "request_id": "req_developer_media_001"
        }
      },
      "PlatformDeveloperShowflatSlotListSandbox": {
        "summary": "Sandbox developer showflat slots",
        "value": {
          "project": {
            "id": "developer_sandbox_active_project_primary",
            "project_slug": "sandbox-riverfront-residences",
            "display_name": "Sandbox Riverfront Residences",
            "status": "active",
            "source_attribution": {
              "source": "official_developer_batch",
              "source_label": "Official developer inventory batch",
              "source_updated_at": "2026-05-18T09:00:00.000Z",
              "last_verified_at": "2026-05-19T01:30:00.000Z",
              "freshness_status": "current",
              "source_precedence": "official_developer_batch",
              "precedence_rank": 1
            }
          },
          "showflat_slots": [
            {
              "id": "developer_sandbox_primary_showflat_morning",
              "sandbox_fixture_id": "active_project_primary_showflat_morning",
              "project_id": "developer_sandbox_active_project_primary",
              "slot_date": "2026-05-24",
              "starts_at": "2026-05-24T02:00:00.000Z",
              "ends_at": "2026-05-24T03:00:00.000Z",
              "timezone": "Asia/Singapore",
              "appointment_type": "showflat_tour",
              "location": {
                "public_label": "Sandbox Riverfront showflat",
                "address_redacted": true,
                "raw_access_notes_exposed": false
              },
              "availability": {
                "public_status": "available",
                "capacity_limit_present": true,
                "capacity_remaining_label": "3 public slots available",
                "exact_capacity_remaining_exposed": false,
                "waitlist_state": "not_applicable"
              },
              "booking_requirements": {
                "request_write_deferred": true,
                "idempotency_required_for_requests": true,
                "reminder_consent_required": true,
                "external_calendar_write_deferred": true,
                "sms_whatsapp_email_deferred": true,
                "crm_owner_routing_deferred": true
              },
              "source_attribution": {
                "source": "official_developer_batch",
                "source_label": "Official developer inventory batch",
                "source_updated_at": "2026-05-18T09:00:00.000Z",
                "last_verified_at": "2026-05-19T01:30:00.000Z",
                "freshness_status": "current",
                "source_precedence": "official_developer_batch",
                "precedence_rank": 1
              },
              "safety": {
                "buyer_identity_exposed": false,
                "contact_details_exposed": false,
                "broker_contact_exposed": false,
                "reservation_notes_exposed": false,
                "raw_calendar_id_exposed": false,
                "reminder_contact_exposed": false,
                "crm_owner_private_note_exposed": false
              },
              "side_effects": {
                "production_feed_called": false,
                "live_callback_sent": false,
                "public_page_published": false,
                "live_new_launches_mutated": false,
                "sms_sent": false,
                "whatsapp_sent": false,
                "email_sent": false,
                "crm_write_performed": false,
                "calendar_write_performed": false
              },
              "livemode": false,
              "updated_at": "2026-05-19T03:00:00.000Z"
            }
          ],
          "pagination": {
            "limit": 50,
            "next_cursor": null
          },
          "showflat_boundary": {
            "public_slot_metadata_only": true,
            "request_write_deferred": true,
            "capacity_limit_present": true,
            "waitlist_state_present": true,
            "reminder_consent_required": true,
            "sms_whatsapp_email_deferred": true,
            "external_calendar_write_deferred": true,
            "crm_owner_routing_deferred": true,
            "live_promotion_required": true
          },
          "livemode": false,
          "request_id": "req_developer_showflat_slots_001"
        }
      },
      "PlatformDeveloperShowflatRequestListSandbox": {
        "summary": "Sandbox developer showflat requests",
        "value": {
          "project": {
            "id": "developer_sandbox_active_project_primary",
            "project_slug": "sandbox-riverfront-residences",
            "display_name": "Sandbox Riverfront Residences",
            "status": "active",
            "source_attribution": {
              "source": "official_developer_batch",
              "source_label": "Official developer inventory batch",
              "source_updated_at": "2026-05-18T09:00:00.000Z",
              "last_verified_at": "2026-05-19T01:30:00.000Z",
              "freshness_status": "current",
              "source_precedence": "official_developer_batch",
              "precedence_rank": 1
            }
          },
          "showflat_requests": [
            {
              "id": "developer_showflat_request_sandbox_001",
              "sandbox_fixture_id": "static_showflat_request_1",
              "project_id": "developer_sandbox_active_project_primary",
              "showflat_slot_id": "developer_sandbox_primary_showflat_morning",
              "status": "accepted",
              "requested_at": "2026-05-19T04:00:00.000Z",
              "requested_slot": {
                "slot_date": "2026-05-24",
                "starts_at": "2026-05-24T02:00:00.000Z",
                "ends_at": "2026-05-24T03:00:00.000Z",
                "timezone": "Asia/Singapore",
                "public_status": "available",
                "waitlist_state": "not_applicable"
              },
              "requester_redaction": {
                "buyer_identity_exposed": false,
                "contact_details_exposed": false,
                "email_returned": false,
                "phone_returned": false,
                "raw_message_returned": false
              },
              "unit_interest": {
                "unit_type_code": "2br",
                "budget_band": "S$1.5M-S$2.5M",
                "raw_budget_exposed": false
              },
              "routing": {
                "owner_routing_status": "sandbox_routed",
                "assigned_destination_type": "appointed_agency",
                "crm_owner_routing_metadata_present": true,
                "crm_write_performed": false,
                "live_crm_delivery_deferred": true
              },
              "reminder_consent": {
                "consent_granted": true,
                "consent_text_version": "showflat-reminder.v1",
                "reminder_contact_redacted": true,
                "sms_whatsapp_email_deferred": true
              },
              "source": {
                "source_page_domain": "sandbox.homejourney.sg",
                "campaign": "sandbox-launch",
                "raw_source_url_exposed": false
              },
              "source_attribution": {
                "source": "official_developer_batch",
                "source_label": "Official developer inventory batch",
                "source_updated_at": "2026-05-18T09:00:00.000Z",
                "last_verified_at": "2026-05-19T01:30:00.000Z",
                "freshness_status": "current",
                "source_precedence": "official_developer_batch",
                "precedence_rank": 1
              },
              "safety": {
                "buyer_identity_exposed": false,
                "contact_details_exposed": false,
                "raw_message_exposed": false,
                "raw_calendar_id_exposed": false,
                "broker_contact_exposed": false,
                "crm_owner_private_note_exposed": false,
                "external_calendar_write_performed": false
              },
              "side_effects": {
                "production_feed_called": false,
                "live_callback_sent": false,
                "public_page_published": false,
                "live_new_launches_mutated": false,
                "sms_sent": false,
                "whatsapp_sent": false,
                "email_sent": false,
                "crm_write_performed": false,
                "calendar_write_performed": false
              },
              "livemode": false,
              "updated_at": "2026-05-19T04:30:00.000Z"
            }
          ],
          "pagination": {
            "limit": 50,
            "next_cursor": null
          },
          "showflat_request_boundary": {
            "sandbox_only": true,
            "idempotency_required": true,
            "capacity_limit_checked": true,
            "waitlist_state_checked": true,
            "reminder_consent_required": true,
            "raw_contact_fields_returned": false,
            "buyer_identity_returned": false,
            "sms_whatsapp_email_deferred": true,
            "external_calendar_write_deferred": true,
            "crm_owner_routing_metadata_present": true,
            "crm_delivery_write_deferred": true,
            "live_promotion_required": true
          },
          "livemode": false,
          "request_id": "req_developer_showflat_requests_001"
        }
      },
      "PlatformDeveloperShowflatRequestCreatedSandbox": {
        "summary": "Sandbox developer showflat request created",
        "value": {
          "showflat_request": {
            "id": "developer_showflat_request_sandbox_001",
            "sandbox_fixture_id": "static_showflat_request_1",
            "project_id": "developer_sandbox_active_project_primary",
            "showflat_slot_id": "developer_sandbox_primary_showflat_morning",
            "status": "accepted",
            "requested_at": "2026-05-19T04:00:00.000Z",
            "requested_slot": {
              "slot_date": "2026-05-24",
              "starts_at": "2026-05-24T02:00:00.000Z",
              "ends_at": "2026-05-24T03:00:00.000Z",
              "timezone": "Asia/Singapore",
              "public_status": "available",
              "waitlist_state": "not_applicable"
            },
            "requester_redaction": {
              "buyer_identity_exposed": false,
              "contact_details_exposed": false,
              "email_returned": false,
              "phone_returned": false,
              "raw_message_returned": false
            },
            "unit_interest": {
              "unit_type_code": "2br",
              "budget_band": "S$1.5M-S$2.5M",
              "raw_budget_exposed": false
            },
            "routing": {
              "owner_routing_status": "sandbox_routed",
              "assigned_destination_type": "appointed_agency",
              "crm_owner_routing_metadata_present": true,
              "crm_write_performed": false,
              "live_crm_delivery_deferred": true
            },
            "reminder_consent": {
              "consent_granted": true,
              "consent_text_version": "showflat-reminder.v1",
              "reminder_contact_redacted": true,
              "sms_whatsapp_email_deferred": true
            },
            "source": {
              "source_page_domain": "sandbox.homejourney.sg",
              "campaign": "sandbox-launch",
              "raw_source_url_exposed": false
            },
            "source_attribution": {
              "source": "official_developer_batch",
              "source_label": "Official developer inventory batch",
              "source_updated_at": "2026-05-18T09:00:00.000Z",
              "last_verified_at": "2026-05-19T01:30:00.000Z",
              "freshness_status": "current",
              "source_precedence": "official_developer_batch",
              "precedence_rank": 1
            },
            "safety": {
              "buyer_identity_exposed": false,
              "contact_details_exposed": false,
              "raw_message_exposed": false,
              "raw_calendar_id_exposed": false,
              "broker_contact_exposed": false,
              "crm_owner_private_note_exposed": false,
              "external_calendar_write_performed": false
            },
            "side_effects": {
              "production_feed_called": false,
              "live_callback_sent": false,
              "public_page_published": false,
              "live_new_launches_mutated": false,
              "sms_sent": false,
              "whatsapp_sent": false,
              "email_sent": false,
              "crm_write_performed": false,
              "calendar_write_performed": false
            },
            "livemode": false,
            "updated_at": "2026-05-19T04:30:00.000Z"
          },
          "prepared_action": {
            "action_id": "developer_showflat_review:developer_showflat_request_sandbox_001:redacted",
            "status": "prepared",
            "required_scope": "developers.showflat.write",
            "required_confirmation": "first_party_app",
            "idempotency_required": true,
            "expires_at": "2026-05-25T04:30:00.000Z",
            "side_effects": {
              "prepared_action_created": true,
              "action_prepared_event_created": true,
              "scheduling_changed": false,
              "calendar_write_performed": false,
              "crm_write_performed": false,
              "contact_data_exposed": false
            },
            "safety": {
              "delegated": false,
              "api_confirmation_allowed": false,
              "api_rejection_allowed": false
            },
            "continuation": {
              "url": "https://homejourney.sg/console/o/current/platform/developer-actions/developer_showflat_review%3Arequest%3Aredacted",
              "handoff_required": true,
              "reason": "first_party_confirmation_required"
            },
            "principal": {
              "type": "automation_client",
              "actor_type": "api_key",
              "environment": "sandbox",
              "organization_id": "00000000-0000-4000-8000-000000000001",
              "organization_type": "sandbox",
              "client_id": "00000000-0000-4000-8000-000000000101",
              "api_key_id": "00000000-0000-4000-8000-000000000201",
              "user_id": null,
              "subject_user_id": null,
              "agent_id": null,
              "subject_agent_id": null,
              "agency_id": null,
              "team_id": null,
              "delegation_id": null,
              "delegated": false
            }
          },
          "showflat_request_boundary": {
            "sandbox_only": true,
            "idempotency_required": true,
            "capacity_limit_checked": true,
            "waitlist_state_checked": true,
            "reminder_consent_required": true,
            "raw_contact_fields_returned": false,
            "buyer_identity_returned": false,
            "sms_whatsapp_email_deferred": true,
            "external_calendar_write_deferred": true,
            "crm_owner_routing_metadata_present": true,
            "crm_delivery_write_deferred": true,
            "live_promotion_required": true
          },
          "livemode": false,
          "idempotency_key_hash": "sha256:redacted",
          "request_id": "req_developer_showflat_request_create_001"
        }
      },
      "PlatformDeveloperUnitListSandbox": {
        "summary": "Sandbox developer project units",
        "value": {
          "project": {
            "id": "developer_sandbox_active_project_primary",
            "project_slug": "sandbox-riverfront-residences",
            "display_name": "Sandbox Riverfront Residences",
            "status": "active",
            "source_attribution": {
              "source": "official_developer_batch",
              "source_label": "Official developer inventory batch",
              "source_updated_at": "2026-05-18T09:00:00.000Z",
              "last_verified_at": "2026-05-19T01:30:00.000Z",
              "freshness_status": "current",
              "source_precedence": "official_developer_batch",
              "precedence_rank": 1
            }
          },
          "units": [
            {
              "id": "developer_sandbox_unit_riverfront-1br-a",
              "sandbox_fixture_id": "riverfront-1br-a",
              "project_id": "developer_sandbox_active_project_primary",
              "unit_type_code": "1br",
              "unit_type_label": "1-bedroom",
              "bedrooms": 1,
              "floor_area_sqft": 527,
              "floor_band": "low floor",
              "unit_reference": {
                "public_unit_reference": "redacted-riverfront-1br-a",
                "hashed_unit_reference": "sha256:redacted:riverfront-1br-a",
                "raw_unit_number_exposed": false,
                "stack_identifier_exposed": false
              },
              "availability": {
                "status": "available",
                "public_label": "Available",
                "raw_option_state_exposed": false,
                "buyer_identity_exposed": false,
                "reservation_notes_exposed": false,
                "unapproved_hold_status_exposed": false
              },
              "price": {
                "currency": "SGD",
                "public_label": "Band only",
                "exact_price_exposed": false,
                "internal_discount_exposed": false,
                "internal_margin_exposed": false
              },
              "source_attribution": {
                "source": "official_developer_batch",
                "source_label": "Official developer inventory batch",
                "source_updated_at": "2026-05-18T09:00:00.000Z",
                "last_verified_at": "2026-05-19T01:30:00.000Z",
                "freshness_status": "current",
                "source_precedence": "official_developer_batch",
                "precedence_rank": 1
              },
              "redaction_review": {
                "scope_required": "developers.inventory.read",
                "reviewed_at": "2026-05-19T03:15:00.000Z",
                "unit_number_redacted": true,
                "stack_identifier_redacted": true,
                "raw_source_file_redacted": true,
                "private_notes_redacted": true
              },
              "safety": {
                "raw_unit_number_exposed": false,
                "stack_identifier_exposed": false,
                "buyer_identity_exposed": false,
                "reservation_notes_exposed": false,
                "raw_option_state_exposed": false,
                "unapproved_hold_status_exposed": false,
                "internal_discount_exposed": false,
                "internal_margin_exposed": false,
                "raw_source_files_exposed": false,
                "source_credentials_exposed": false
              },
              "side_effects": {
                "production_feed_called": false,
                "live_callback_sent": false,
                "public_page_published": false,
                "live_new_launches_mutated": false,
                "sms_sent": false,
                "whatsapp_sent": false,
                "email_sent": false,
                "crm_write_performed": false,
                "calendar_write_performed": false
              },
              "livemode": false,
              "updated_at": "2026-05-19T03:20:00.000Z"
            }
          ],
          "pagination": {
            "limit": 50,
            "next_cursor": null
          },
          "unit_boundary": {
            "restricted_unit_stack_metadata_only": true,
            "raw_unit_numbers_redacted": true,
            "stack_identifiers_redacted": true,
            "buyer_identity_redacted": true,
            "reservation_notes_redacted": true,
            "raw_option_state_redacted": true,
            "write_controls_deferred": true,
            "live_promotion_required": true
          },
          "livemode": false,
          "request_id": "req_developer_units_001"
        }
      },
      "PlatformDeveloperProjectNotFoundProblem": {
        "summary": "Developer project not found problem",
        "value": {
          "type": "https://platform-api.homejourney.sg/problems/developer_project_not_found",
          "title": "Developer project not found",
          "status": 404,
          "code": "developer_project_not_found",
          "detail": "The developer project was not found for this platform environment.",
          "request_id": "req_developer_project_404"
        }
      },
      "DevelopmentProfessionalServicesProjectListSandbox": {
        "value": {
          "projects": [
            {
              "id": "dps_sandbox_mixed_use_redevelopment",
              "fixture_id": "mixed_use_design_coordination",
              "display_name": "Sandbox Mixed-Use Redevelopment",
              "project_stage": "design_coordination",
              "professional_roles": [
                "architect",
                "qualified_person",
                "structural_engineer",
                "mep_engineer",
                "bim_consultant"
              ],
              "requirements": {
                "requirement_count": 8,
                "authority_codes": [
                  "BCA",
                  "SCDF",
                  "URA"
                ],
                "raw_requirement_text_exposed": false
              },
              "consultant_tasks": {
                "open_count": 4,
                "overdue_count": 1,
                "assignee_identity_exposed": false,
                "private_notes_exposed": false
              },
              "submission_evidence": {
                "status": "ready_for_review",
                "authority_name": "Building and Construction Authority",
                "evidence_reference": "dps_evidence_bca_coordination_v3",
                "raw_files_exposed": false,
                "credentials_exposed": false
              },
              "milestone": {
                "label": "Coordinated design review",
                "status": "in_progress",
                "due_on": "2026-08-15"
              },
              "design_change_audit": {
                "change_count": 3,
                "latest_change_summary": "Public-safe coordination revision recorded",
                "actor_identity_exposed": false,
                "raw_diff_exposed": false
              },
              "source_attribution": {
                "source_type": "sandbox_fixture",
                "freshness_status": "current",
                "fixture_updated_at": "2026-07-14T00:00:00.000Z"
              },
              "redaction": {
                "professional_contact_details_exposed": false,
                "raw_documents_exposed": false,
                "private_comments_exposed": false,
                "authority_credentials_exposed": false
              },
              "side_effects": {
                "production_document_uploaded": false,
                "authority_submission_performed": false,
                "consultant_task_mutated": false,
                "milestone_mutated": false,
                "design_change_approved": false,
                "live_callback_sent": false
              }
            }
          ],
          "access": {
            "organization_id": "11111111-1111-4111-8111-111111111111",
            "client_id": "22222222-2222-4222-8222-222222222222",
            "granted_scopes": [
              "development_professional_services.projects.read"
            ],
            "sandbox_fixture_mode": "read_only",
            "live_project_reads": "deferred",
            "blocked_actions": [
              "document_upload",
              "authority_submission",
              "consultant_task_write",
              "milestone_write",
              "design_change_approval"
            ]
          },
          "livemode": false,
          "request_id": "req_dps_sandbox_projects"
        }
      },
      "ValuationAppraisalCaseListSandbox": {
        "value": {
          "cases": [
            {
              "id": "valuation_case_sandbox_queenstown",
              "fixture_id": "hdb_resale_appraisal_review",
              "display_label": "Sandbox Residential Appraisal Review",
              "case_status": "evidence_review",
              "valuation_purpose": "mortgage_security",
              "property_facts": {
                "asset_type": "residential_apartment",
                "tenure": "leasehold",
                "planning_area": "Queenstown",
                "exact_address_exposed": false,
                "unit_identifier_exposed": false,
                "ownership_identity_exposed": false
              },
              "comparable_evidence": {
                "comparable_count": 4,
                "evidence_period": "2026_H1",
                "source_label": "Sandbox comparable transaction set",
                "source_records_exposed": false,
                "adjustment_notes_exposed": false
              },
              "inspection": {
                "status": "not_scheduled",
                "access_instructions_exposed": false,
                "occupant_identity_exposed": false
              },
              "professional_review": {
                "required": true,
                "status": "pending_registered_valuer_review",
                "automated_official_valuation": false
              },
              "handoff": {
                "audience": "lender",
                "status": "not_sent",
                "recipient_identity_exposed": false,
                "report_document_exposed": false
              },
              "source_attribution": {
                "source_type": "sandbox_fixture",
                "freshness_status": "current",
                "fixture_updated_at": "2026-07-14T00:00:00.000Z"
              },
              "redaction": {
                "exact_address_exposed": false,
                "client_or_lender_contact_exposed": false,
                "raw_reports_exposed": false,
                "access_instructions_exposed": false,
                "credentials_exposed": false
              },
              "side_effects": {
                "official_valuation_record_created": false,
                "inspection_scheduled": false,
                "valuation_report_issued": false,
                "client_or_lender_handoff_sent": false,
                "comparable_evidence_mutated": false,
                "live_callback_sent": false
              }
            }
          ],
          "access": {
            "organization_id": "11111111-1111-4111-8111-111111111111",
            "client_id": "22222222-2222-4222-8222-222222222222",
            "granted_scopes": [
              "valuation_appraisal.cases.read"
            ],
            "sandbox_fixture_mode": "read_only",
            "live_case_reads": "deferred",
            "blocked_actions": [
              "official_valuation_record_write",
              "inspection_schedule",
              "valuation_report_issue",
              "client_lender_handoff",
              "comparable_evidence_write"
            ]
          },
          "livemode": false,
          "request_id": "req_valuation_sandbox_cases"
        }
      },
      "ValuationEstimateHdb": {
        "summary": "Illustrative figures, not a live estimate",
        "value": {
          "valuation": {
            "engine_version": "1.5.0",
            "model_build_id": "hdb-sale-2026-10-05",
            "subject": {
              "segment": "hdb",
              "display_address": "96 Dawson Road",
              "block": "96",
              "street": "DAWSON RD",
              "town": "QUEENSTOWN",
              "flat_type": "4 ROOM",
              "lease_start_year": 2016
            },
            "side": "sale",
            "status": "estimate",
            "estimate": 1010000,
            "range": {
              "low": 960000,
              "high": 1060000
            },
            "confidence": "high",
            "comparable_count": 14,
            "comparables": [
              {
                "month": "2026-09",
                "price": 1028000,
                "psf": 1027,
                "floor_area_sqm": 93,
                "floor_band": "25 TO 27",
                "location": "same_block"
              }
            ],
            "assumptions": [
              "Floor area taken as the typical 93 sqm for a 4 ROOM flat."
            ],
            "reasons": [],
            "data_as_of": "2026-09",
            "segment_accuracy": {
              "median_ape": 3.1,
              "within_10pct": 92.4,
              "range_coverage": 81,
              "measured_at": "2026-10-05"
            }
          },
          "disclaimer": "An automated estimate from recorded transactions, not a valuation by a licensed valuer. Do not rely on it for a loan, sale or legal decision.",
          "attribution": {
            "text": "Estimate by Homejourney",
            "url": "https://www.homejourney.sg/property-valuation"
          },
          "livemode": true,
          "request_id": "req_valuation_example"
        }
      },
      "ValuationSubjectsSearch": {
        "summary": "A search for `96 dawson`",
        "value": {
          "subjects": [
            {
              "segment": "hdb",
              "block": "96",
              "street": "DAWSON RD",
              "town": "QUEENSTOWN",
              "display_address": "96 Dawson Road",
              "flat_types": [
                "3 ROOM",
                "4 ROOM",
                "5 ROOM"
              ],
              "lease_start_year": 2016
            }
          ],
          "attribution": {
            "text": "Estimate by Homejourney",
            "url": "https://www.homejourney.sg/property-valuation"
          },
          "livemode": true,
          "request_id": "req_valuation_subjects_example"
        }
      },
      "ValuationEmbedKeyAgency": {
        "summary": "A sandbox widget key for one site",
        "value": {
          "embed_key": {
            "id": "6d5f8a8e-1f43-4c1b-9b8f-0f0a3c2c1e11",
            "embed_key": "hje_test_Q2hhbmdlTWVUb0FSZWFsS2V5MTIzNDU2",
            "label": "Agency website",
            "allowed_origins": [
              "https://www.example.com"
            ],
            "status": "active",
            "created_at": "2026-10-09T02:00:00.000Z",
            "revoked_at": null
          },
          "livemode": false,
          "request_id": "req_valuation_embed_key_example"
        }
      },
      "ListingFeedInReview": {
        "summary": "A new listing waiting for review",
        "value": {
          "listing": {
            "object": "listing_feed_listing",
            "external_ref": "agency-listing-1042",
            "status": "in_review",
            "listing_id": null,
            "revision": 1,
            "revision_status": "in_review",
            "reason_codes": [],
            "hidden_reasons": [],
            "updated_at": "2026-10-12T04:00:00.000Z"
          },
          "livemode": false,
          "request_id": "req_01hjp_listing_feed"
        }
      },
      "InstitutionalPortfolioSummarySandbox": {
        "value": {
          "portfolio_summary": {
            "id": "portfolio_sandbox_reit_core",
            "display_label": "Sandbox Institutional Portfolio Summary",
            "reporting_period": "2026_Q2",
            "aggregation": {
              "asset_count": 8,
              "planning_area_count": 4,
              "occupancy_band": "eighty_to_ninety_percent",
              "occupancy_exact_exposed": false,
              "asset_records_exposed": false,
              "unit_records_exposed": false
            },
            "lease_posture": {
              "active_lease_count_band": "twenty_to_forty",
              "tenant_identity_exposed": false,
              "lease_terms_exposed": false,
              "rent_amounts_exposed": false,
              "expiry_schedule_exposed": false
            },
            "valuation_posture": {
              "coverage_status": "professional_review_in_progress",
              "valuation_amounts_exposed": false,
              "raw_reports_exposed": false,
              "professional_review_required": true
            },
            "operations": {
              "open_maintenance_count_band": "one_to_five",
              "capex_status": "review_required",
              "compliance_status": "review_required",
              "vendor_identity_exposed": false,
              "work_order_details_exposed": false
            },
            "reporting": {
              "investor_reporting_status": "not_generated",
              "investor_reports_exposed": false,
              "source_data_export_exposed": false,
              "data_review_required": true
            },
            "source_attribution": {
              "source_type": "sandbox_fixture",
              "freshness_status": "current",
              "fixture_updated_at": "2026-07-14T00:00:00.000Z"
            },
            "redaction": {
              "exact_addresses_exposed": false,
              "asset_or_unit_identifiers_exposed": false,
              "tenant_identity_exposed": false,
              "lease_terms_exposed": false,
              "valuation_amounts_exposed": false,
              "vendor_details_exposed": false,
              "investor_reports_exposed": false,
              "credentials_exposed": false
            },
            "side_effects": {
              "portfolio_record_mutated": false,
              "lease_record_mutated": false,
              "maintenance_or_capex_action_created": false,
              "compliance_action_created": false,
              "investor_report_generated": false,
              "live_callback_sent": false
            }
          },
          "access": {
            "organization_id": "11111111-1111-4111-8111-111111111111",
            "client_id": "22222222-2222-4222-8222-222222222222",
            "granted_scopes": [
              "portfolio.read"
            ],
            "sandbox_fixture_mode": "aggregate_read_only",
            "live_portfolio_reads": "deferred",
            "blocked_actions": [
              "portfolio_record_write",
              "lease_record_write",
              "maintenance_capex_action",
              "compliance_action",
              "investor_report_generate",
              "source_data_export"
            ]
          },
          "livemode": false,
          "request_id": "req_portfolio_sandbox"
        }
      },
      "PropertyManagementSummarySandbox": {
        "value": {
          "property_management_summary": {
            "id": "property_management_sandbox_mcst_alpha",
            "display_label": "Sandbox Property Management Summary",
            "reporting_period": "2026_Q2",
            "estate_posture": {
              "management_mode": "mcst",
              "unit_count_band": "one_hundred_to_two_hundred",
              "occupancy_band": "eighty_to_ninety_percent",
              "unit_records_exposed": false,
              "exact_addresses_exposed": false,
              "strata_lot_identifiers_exposed": false
            },
            "resident_privacy": {
              "occupancy_exact_exposed": false,
              "resident_identity_exposed": false,
              "owner_identity_exposed": false,
              "tenant_identity_exposed": false,
              "contact_details_exposed": false,
              "access_credentials_exposed": false
            },
            "operations": {
              "open_maintenance_count_band": "six_to_ten",
              "notice_status": "summary_only",
              "incident_status": "review_required",
              "work_order_details_exposed": false,
              "notice_contents_exposed": false,
              "incident_evidence_exposed": false
            },
            "vendor_and_finance_privacy": {
              "vendor_count_band": "one_to_five",
              "vendor_identity_exposed": false,
              "vendor_contact_details_exposed": false,
              "vendor_contract_or_payment_details_exposed": false,
              "budget_or_levy_amounts_exposed": false,
              "access_control_data_exposed": false,
              "estate_operator_review_required": true
            },
            "source_attribution": {
              "source_type": "sandbox_fixture",
              "freshness_status": "current",
              "fixture_updated_at": "2026-07-14T00:00:00.000Z"
            },
            "redaction": {
              "unit_or_strata_identifiers_exposed": false,
              "exact_addresses_exposed": false,
              "resident_or_occupier_identity_exposed": false,
              "vendor_details_exposed": false,
              "raw_notice_or_incident_records_exposed": false,
              "budget_or_levy_amounts_exposed": false,
              "access_control_data_exposed": false,
              "credentials_exposed": false
            },
            "side_effects": {
              "unit_or_resident_record_mutated": false,
              "maintenance_work_order_created": false,
              "notice_or_incident_action_created": false,
              "vendor_or_payment_record_mutated": false,
              "levy_or_budget_action_created": false,
              "access_control_action_created": false,
              "source_export_generated": false,
              "live_callback_sent": false
            }
          },
          "access": {
            "organization_id": "11111111-1111-4111-8111-111111111111",
            "client_id": "22222222-2222-4222-8222-222222222222",
            "granted_scopes": [
              "property_management.units.read"
            ],
            "sandbox_fixture_mode": "privacy_minimized_aggregate_read_only",
            "live_property_management_reads": "deferred",
            "blocked_actions": [
              "unit_record_write",
              "resident_record_write",
              "maintenance_work_order_action",
              "notice_or_incident_action",
              "vendor_or_payment_action",
              "levy_or_budget_action",
              "access_control_action",
              "source_data_export"
            ]
          },
          "livemode": false,
          "request_id": "req_property_management_sandbox"
        }
      },
      "SurveyTitleGeospatialSummarySandbox": {
        "value": {
          "survey_title_geospatial_summary": {
            "id": "survey_title_geospatial_sandbox_context_alpha",
            "display_label": "Sandbox Survey, Title and Geospatial Context",
            "context_area": "Queenstown planning area",
            "parcel_and_map_context": {
              "context_mode": "planning_area_only",
              "map_reference_status": "generalized_reference_only",
              "official_boundary_determination": false,
              "exact_cadastral_geometry_exposed": false,
              "exact_coordinates_exposed": false,
              "survey_plan_exposed": false
            },
            "title_posture": {
              "title_record_status": "not_retrieved",
              "title_identifier_exposed": false,
              "ownership_identity_exposed": false,
              "encumbrance_or_caveat_details_exposed": false,
              "professional_title_search_required": true
            },
            "source_evidence": [
              {
                "dataset_id": "onemap_geocode_fixture",
                "source_id": "sla_onemap_geocoding",
                "dataset_name": "OneMap geocode fixture",
                "source_agency": "SLA",
                "source_name": "OneMap Geocoding",
                "source_url_or_id": "onemap.gov.sg:geocode",
                "freshness_status": "fresh",
                "retrieved_at": "2026-05-16T00:30:00.000Z",
                "valid_from": "2026-05-01T00:00:00.000Z",
                "valid_to": null,
                "license_label": "Singapore Open Data Licence / agency terms review",
                "confidence": 0.96,
                "schema_version": "official_sources.v1.2026-05-16",
                "derived_from": [
                  "sla_onemap_geocoding"
                ],
                "raw_source_payload_exposed": false
              },
              {
                "dataset_id": "ura_private_transactions_2026_05",
                "source_id": "ura_private_transactions",
                "dataset_name": "URA private transactions May 2026",
                "source_agency": "URA",
                "source_name": "URA Private Residential Transactions",
                "source_url_or_id": "ura.gov.sg:private-residential-property-transactions",
                "freshness_status": "stale",
                "retrieved_at": "2026-05-16T00:30:00.000Z",
                "valid_from": "2026-05-01T00:00:00.000Z",
                "valid_to": null,
                "license_label": "Singapore Open Data Licence / agency terms review",
                "confidence": 0.96,
                "schema_version": "official_sources.v1.2026-05-16",
                "derived_from": [
                  "ura_private_transactions"
                ],
                "raw_source_payload_exposed": false
              }
            ],
            "conflict_review": {
              "winning_source_class": "official_source",
              "compared_source_class": "trusted_partner_feed",
              "not_silently_overwritten": true,
              "operator_review_visible": true,
              "professional_review_required": true
            },
            "authority_boundary": {
              "informational_context_only": true,
              "authoritative_title_or_cadastral_determination": false,
              "registered_surveyor_or_lawyer_review_required": true
            },
            "redaction": {
              "exact_address_exposed": false,
              "parcel_or_lot_identifier_exposed": false,
              "title_identifier_exposed": false,
              "owner_or_interested_party_identity_exposed": false,
              "exact_geometry_or_coordinates_exposed": false,
              "raw_source_payload_exposed": false,
              "credentials_exposed": false
            },
            "side_effects": {
              "production_upstream_api_called": false,
              "title_or_ownership_record_mutated": false,
              "survey_plan_or_cadastral_record_mutated": false,
              "source_conflict_resolution_mutated": false,
              "official_submission_or_certification_created": false,
              "source_export_generated": false,
              "live_callback_sent": false
            }
          },
          "access": {
            "organization_id": "11111111-1111-4111-8111-111111111111",
            "client_id": "22222222-2222-4222-8222-222222222222",
            "granted_scopes": [
              "geospatial.read"
            ],
            "sandbox_fixture_mode": "official_source_attributed_read_only",
            "live_survey_title_geospatial_reads": "deferred",
            "deferred_record_scopes": [
              "title_records.read",
              "source_conflicts.read"
            ],
            "blocked_actions": [
              "authoritative_boundary_determination",
              "title_record_search_or_retrieval",
              "title_or_ownership_record_write",
              "survey_plan_or_cadastral_record_write",
              "source_conflict_resolution_write",
              "official_submission_or_certification",
              "source_data_export"
            ]
          },
          "livemode": false,
          "request_id": "req_survey_title_geospatial_sandbox"
        }
      },
      "OfficialSourceListSandbox": {
        "value": {
          "sources": [
            {
              "source_id": "hdb_resale_transactions",
              "source_agency": "HDB",
              "source_name": "HDB Resale Transactions",
              "source_category": "hdb_resale",
              "source_url_or_id": "data.gov.sg:hdb-resale-flat-prices",
              "license_label": "Singapore Open Data Licence / agency terms review",
              "terms_review_status": "approved",
              "freshness_owner_present": true,
              "rollback_or_fallback_present": true,
              "sandbox_fixture_available": true,
              "public_display_allowed": true,
              "partner_access_allowed": true,
              "partner_facing_ready": true,
              "missing_requirements": [],
              "credential_class": "none"
            }
          ],
          "access": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "granted_official_source_scopes": [
              "official_sources.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_upstream_access": "deferred",
            "sandbox_fixture_mode": "read_only",
            "upstream_credential_material_returned": false
          },
          "livemode": false,
          "request_id": "req_sandbox_official_sources"
        }
      },
      "OfficialSourceDatasetsSandbox": {
        "value": {
          "datasets": [
            {
              "dataset_id": "hdb_resale_2026_05",
              "source_id": "hdb_resale_transactions",
              "dataset_name": "HDB resale May 2026",
              "license_label": "Singapore Open Data Licence / agency terms review",
              "freshness_status": "fresh",
              "partner_access_allowed": true,
              "public_display_allowed": true,
              "attribution": {
                "source_agency": "HDB",
                "source_name": "HDB Resale Transactions",
                "source_url_or_id": "data.gov.sg:hdb-resale-flat-prices",
                "retrieved_at": "2026-05-16T00:30:00.000Z",
                "valid_from": "2026-05-01T00:00:00.000Z",
                "valid_to": null,
                "license_label": "Singapore Open Data Licence / agency terms review",
                "freshness_status": "fresh",
                "confidence": 0.96,
                "schema_version": "official_sources.v1.2026-05-16",
                "derived_from": [
                  "hdb_resale_transactions"
                ]
              }
            }
          ],
          "access": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "granted_official_source_scopes": [
              "official_sources.datasets.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_upstream_access": "deferred",
            "sandbox_fixture_mode": "read_only",
            "upstream_credential_material_returned": false
          },
          "livemode": false,
          "request_id": "req_sandbox_official_source_datasets"
        }
      },
      "OfficialSourceFreshnessSandbox": {
        "value": {
          "freshness": [
            {
              "dataset_id": "hdb_resale_2026_05",
              "source_id": "hdb_resale_transactions",
              "dataset_name": "HDB resale May 2026",
              "freshness_status": "fresh",
              "retrieved_at": "2026-05-16T00:30:00.000Z",
              "valid_from": "2026-05-01T00:00:00.000Z",
              "valid_to": null,
              "license_label": "Singapore Open Data Licence / agency terms review",
              "degraded_reason": null,
              "attribution": {
                "source_agency": "HDB",
                "source_name": "HDB Resale Transactions",
                "source_url_or_id": "data.gov.sg:hdb-resale-flat-prices",
                "retrieved_at": "2026-05-16T00:30:00.000Z",
                "valid_from": "2026-05-01T00:00:00.000Z",
                "valid_to": null,
                "license_label": "Singapore Open Data Licence / agency terms review",
                "freshness_status": "fresh",
                "confidence": 0.96,
                "schema_version": "official_sources.v1.2026-05-16",
                "derived_from": [
                  "hdb_resale_transactions"
                ]
              }
            }
          ],
          "access": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "granted_official_source_scopes": [
              "official_sources.freshness.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_upstream_access": "deferred",
            "sandbox_fixture_mode": "read_only",
            "upstream_credential_material_returned": false
          },
          "livemode": false,
          "request_id": "req_sandbox_official_source_freshness"
        }
      },
      "OfficialSourceRunsSandbox": {
        "value": {
          "runs": [
            {
              "run_id": "official_source_run_fixture_refresh_2026_05_16",
              "mode": "fixture_refresh",
              "status": "succeeded",
              "source_id": "hdb_resale_transactions",
              "dataset_id": "hdb_resale_2026_05",
              "started_at": "2026-05-16T01:00:00.000Z",
              "completed_at": "2026-05-16T01:00:03.000Z",
              "records_seen": 2,
              "records_changed": 2,
              "attribution_validation_performed": true,
              "production_upstream_api_called": false,
              "live_dataset_mutated": false
            }
          ],
          "access": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "granted_official_source_scopes": [
              "official_sources.audit.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_upstream_access": "deferred",
            "sandbox_fixture_mode": "read_only",
            "upstream_credential_material_returned": false
          },
          "livemode": false,
          "request_id": "req_sandbox_official_source_runs"
        }
      },
      "OfficialSourceFixtureRefreshSandbox": {
        "value": {
          "refresh": {
            "mode": "deterministic_sandbox_fixture",
            "accepted": true,
            "source_id": "hdb_resale_transactions",
            "dataset_id": null
          },
          "runs": [
            {
              "run_id": "official_source_run_fixture_refresh_2026_05_16",
              "mode": "fixture_refresh",
              "status": "succeeded",
              "source_id": "hdb_resale_transactions",
              "dataset_id": "hdb_resale_2026_05",
              "started_at": "2026-05-16T01:00:00.000Z",
              "completed_at": "2026-05-16T01:00:03.000Z",
              "records_seen": 2,
              "records_changed": 2,
              "attribution_validation_performed": true,
              "production_upstream_api_called": false,
              "live_dataset_mutated": false
            }
          ],
          "side_effects": {
            "production_upstream_api_called": false,
            "production_credential_used": false,
            "live_callback_sent": false,
            "live_dataset_mutated": false,
            "production_truth_published": false,
            "raw_credential_material_returned": false,
            "restricted_payload_returned": false,
            "production_webhook_sent": false,
            "fixture_state_mutated": false,
            "idempotency_and_request_events_only": true
          },
          "access": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "granted_official_source_scopes": [
              "official_sources.refresh"
            ],
            "actor_model": "api_key_automation_client",
            "live_upstream_access": "deferred",
            "sandbox_fixture_mode": "read_only",
            "upstream_credential_material_returned": false
          },
          "livemode": false,
          "request_id": "req_sandbox_official_source_fixture_refresh"
        }
      },
      "OfficialSourceRecordsSearchSandbox": {
        "value": {
          "records": [
            {
              "record_id": "official_source_record_hdb_queenstown_4room",
              "dataset_id": "hdb_resale_2026_05",
              "source_id": "hdb_resale_transactions",
              "data": {
                "town": "QUEENSTOWN",
                "flat_type": "4 ROOM",
                "block": "88",
                "street_name": "DAWSON ROAD",
                "resale_price_sgd": 880000
              },
              "attribution": {
                "source_agency": "HDB",
                "source_name": "HDB Resale Transactions",
                "source_url_or_id": "data.gov.sg:hdb-resale-flat-prices",
                "retrieved_at": "2026-05-16T00:30:00.000Z",
                "valid_from": "2026-05-01T00:00:00.000Z",
                "valid_to": null,
                "license_label": "Singapore Open Data Licence / agency terms review",
                "freshness_status": "fresh",
                "confidence": 0.96,
                "schema_version": "official_sources.v1.2026-05-16",
                "derived_from": [
                  "hdb_resale_transactions"
                ]
              },
              "conflict": null
            }
          ],
          "access": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "granted_official_source_scopes": [
              "official_sources.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_upstream_access": "deferred",
            "sandbox_fixture_mode": "read_only",
            "upstream_credential_material_returned": false
          },
          "livemode": false,
          "request_id": "req_sandbox_official_source_records"
        }
      },
      "OfficialSourceAttributionExplanationSandbox": {
        "value": {
          "explanations": [
            {
              "explanation_id": "official_source_attribution_official_source_record_hdb_queenstown_4room",
              "source_id": "hdb_resale_transactions",
              "dataset_id": "hdb_resale_2026_05",
              "record_id": "official_source_record_hdb_queenstown_4room",
              "attribution": {
                "source_agency": "HDB",
                "source_name": "HDB Resale Transactions",
                "source_url_or_id": "data.gov.sg:hdb-resale-flat-prices",
                "retrieved_at": "2026-05-16T00:30:00.000Z",
                "valid_from": "2026-05-01T00:00:00.000Z",
                "valid_to": null,
                "license_label": "Singapore Open Data Licence / agency terms review",
                "freshness_status": "fresh",
                "confidence": 0.96,
                "schema_version": "official_sources.v1.2026-05-16",
                "derived_from": [
                  "hdb_resale_transactions"
                ]
              },
              "completeness": {
                "required_fields": [
                  "source_agency",
                  "source_name",
                  "source_url_or_id",
                  "retrieved_at",
                  "valid_from",
                  "valid_to",
                  "license_label",
                  "freshness_status",
                  "confidence",
                  "schema_version",
                  "derived_from"
                ],
                "missing_fields": [],
                "complete": true
              },
              "freshness": {
                "status": "fresh",
                "retrieved_at": "2026-05-16T00:30:00.000Z",
                "valid_from": "2026-05-01T00:00:00.000Z",
                "valid_to": null,
                "degraded_reason": null
              },
              "provenance": {
                "derived_from": [
                  "hdb_resale_transactions"
                ],
                "source_url_or_id": "data.gov.sg:hdb-resale-flat-prices",
                "license_label": "Singapore Open Data Licence / agency terms review",
                "public_display_allowed": true,
                "partner_access_allowed": true
              },
              "safety": {
                "production_upstream_api_called": false,
                "live_dataset_mutated": false,
                "raw_credential_material_returned": false,
                "restricted_payload_returned": false
              }
            }
          ],
          "access": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "granted_official_source_scopes": [
              "official_sources.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_upstream_access": "deferred",
            "sandbox_fixture_mode": "read_only",
            "upstream_credential_material_returned": false
          },
          "livemode": false,
          "request_id": "req_sandbox_official_source_attribution"
        }
      },
      "ImportExportReadinessSandbox": {
        "summary": "Phase 0 read-only import/export readiness contracts for every launch vertical.",
        "value": {
          "contracts": [
            {
              "module_id": "agent",
              "label": "Agent",
              "workspace_root": "/console/o/[orgId]/agent",
              "import_record_type": "lead or client",
              "seed_fixture": "seeded-agent-import-preview-lead-or-client.csv",
              "preview_mode": "dry_run_preview_only",
              "mutation_policy": "no_database_write_until_confirmed",
              "validation_rules": [
                "schema_validation",
                "tenant_scope_validation",
                "freshness_label_validation",
                "source_precedence_validation"
              ],
              "dedupe_keys": [
                "tenant_id",
                "module_id",
                "source_record_id",
                "normalized_record_fingerprint"
              ],
              "rollback_state": "preview_only_no_mutation",
              "export_posture": {
                "format": "csv_and_json",
                "scope": "tenant_scoped",
                "redaction": "public_safe_and_private_safe",
                "retention": "short_retention_until_approved_export"
              },
              "offboarding_posture": "suspend_imports_preserve_export_and_audit",
              "audit_event": "platform.agent.import_preview.generated",
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-import-preview-map.test.ts apps/web/scripts/platform/__tests__/launch-readiness-matrix.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-import-preview-map.test.ts",
              "source_paths": [
                "apps/web/lib/platform/vertical-module-registry.ts",
                "apps/web/lib/platform/launch-readiness-artifact.ts",
                "apps/web/lib/platform/launch-readiness-matrix.ts",
                "docs/features/platform/PLATFORM_STORAGE_ARCHITECTURE.md",
                "docs/features/platform/API_FIRST_SELF_SERVE_CONTROL_PLANE_SPEC.md",
                "docs/features/platform/API_FIRST_SELF_SERVE_READINESS_CONTRACT_SPEC.md",
                "docs/features/platform/DATA_QUALITY_AND_DISPUTES.md"
              ],
              "source_markers": [
                "agent",
                "lead or client",
                "disable_agent_module_live_actions",
                "Import preview, validation, dedupe, rollback, export, and audit",
                "Import/export posture is explicit.",
                "Temporary staging",
                "import previews",
                "offboarding, data export",
                "audit evidence"
              ],
              "passed_steps": [
                "preview_file",
                "validation_contract",
                "dedupe_contract",
                "rollback_posture",
                "export_posture",
                "offboarding_posture",
                "audit_event"
              ],
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep import preview as a dry-run source contract until runtime import confirmation, rollback drill, and export/offboarding execution are operator-rehearsed.",
              "runtime_confirmation": "deferred_until_operator_rehearsal",
              "import_write_access": "disabled",
              "export_download_access": "disabled",
              "rollback_execution": "deferred",
              "offboarding_execution": "deferred"
            },
            {
              "module_id": "agency",
              "label": "Agency",
              "workspace_root": "/console/o/[orgId]/agency",
              "import_record_type": "roster member or listing",
              "seed_fixture": "seeded-agency-import-preview-roster-member-or-listing.csv",
              "preview_mode": "dry_run_preview_only",
              "mutation_policy": "no_database_write_until_confirmed",
              "validation_rules": [
                "schema_validation",
                "tenant_scope_validation",
                "freshness_label_validation",
                "source_precedence_validation"
              ],
              "dedupe_keys": [
                "tenant_id",
                "module_id",
                "source_record_id",
                "normalized_record_fingerprint"
              ],
              "rollback_state": "preview_only_no_mutation",
              "export_posture": {
                "format": "csv_and_json",
                "scope": "tenant_scoped",
                "redaction": "public_safe_and_private_safe",
                "retention": "short_retention_until_approved_export"
              },
              "offboarding_posture": "suspend_imports_preserve_export_and_audit",
              "audit_event": "platform.agency.import_preview.generated",
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-import-preview-map.test.ts apps/web/scripts/platform/__tests__/launch-readiness-matrix.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-import-preview-map.test.ts",
              "source_paths": [
                "apps/web/lib/platform/vertical-module-registry.ts",
                "apps/web/lib/platform/launch-readiness-artifact.ts",
                "apps/web/lib/platform/launch-readiness-matrix.ts",
                "docs/features/platform/PLATFORM_STORAGE_ARCHITECTURE.md",
                "docs/features/platform/API_FIRST_SELF_SERVE_CONTROL_PLANE_SPEC.md",
                "docs/features/platform/API_FIRST_SELF_SERVE_READINESS_CONTRACT_SPEC.md",
                "docs/features/platform/DATA_QUALITY_AND_DISPUTES.md"
              ],
              "source_markers": [
                "agency",
                "roster member or listing",
                "disable_agency_module_live_actions",
                "Import preview, validation, dedupe, rollback, export, and audit",
                "Import/export posture is explicit.",
                "Temporary staging",
                "import previews",
                "offboarding, data export",
                "audit evidence"
              ],
              "passed_steps": [
                "preview_file",
                "validation_contract",
                "dedupe_contract",
                "rollback_posture",
                "export_posture",
                "offboarding_posture",
                "audit_event"
              ],
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep import preview as a dry-run source contract until runtime import confirmation, rollback drill, and export/offboarding execution are operator-rehearsed.",
              "runtime_confirmation": "deferred_until_operator_rehearsal",
              "import_write_access": "disabled",
              "export_download_access": "disabled",
              "rollback_execution": "deferred",
              "offboarding_execution": "deferred"
            },
            {
              "module_id": "business",
              "label": "Business",
              "workspace_root": "/console/o/[orgId]/business/overview",
              "import_record_type": "service job or service listing",
              "seed_fixture": "seeded-business-import-preview-service-job-or-service-listing.csv",
              "preview_mode": "dry_run_preview_only",
              "mutation_policy": "no_database_write_until_confirmed",
              "validation_rules": [
                "schema_validation",
                "tenant_scope_validation",
                "freshness_label_validation",
                "source_precedence_validation"
              ],
              "dedupe_keys": [
                "tenant_id",
                "module_id",
                "source_record_id",
                "normalized_record_fingerprint"
              ],
              "rollback_state": "preview_only_no_mutation",
              "export_posture": {
                "format": "csv_and_json",
                "scope": "tenant_scoped",
                "redaction": "public_safe_and_private_safe",
                "retention": "short_retention_until_approved_export"
              },
              "offboarding_posture": "suspend_imports_preserve_export_and_audit",
              "audit_event": "platform.business.import_preview.generated",
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-import-preview-map.test.ts apps/web/scripts/platform/__tests__/launch-readiness-matrix.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-import-preview-map.test.ts",
              "source_paths": [
                "apps/web/lib/platform/vertical-module-registry.ts",
                "apps/web/lib/platform/launch-readiness-artifact.ts",
                "apps/web/lib/platform/launch-readiness-matrix.ts",
                "docs/features/platform/PLATFORM_STORAGE_ARCHITECTURE.md",
                "docs/features/platform/API_FIRST_SELF_SERVE_CONTROL_PLANE_SPEC.md",
                "docs/features/platform/API_FIRST_SELF_SERVE_READINESS_CONTRACT_SPEC.md",
                "docs/features/platform/DATA_QUALITY_AND_DISPUTES.md"
              ],
              "source_markers": [
                "business",
                "service job or service listing",
                "disable_business_provider_live_actions",
                "Import preview, validation, dedupe, rollback, export, and audit",
                "Import/export posture is explicit.",
                "Temporary staging",
                "import previews",
                "offboarding, data export",
                "audit evidence"
              ],
              "passed_steps": [
                "preview_file",
                "validation_contract",
                "dedupe_contract",
                "rollback_posture",
                "export_posture",
                "offboarding_posture",
                "audit_event"
              ],
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep import preview as a dry-run source contract until runtime import confirmation, rollback drill, and export/offboarding execution are operator-rehearsed.",
              "runtime_confirmation": "deferred_until_operator_rehearsal",
              "import_write_access": "disabled",
              "export_download_access": "disabled",
              "rollback_execution": "deferred",
              "offboarding_execution": "deferred"
            },
            {
              "module_id": "mortgage",
              "label": "Mortgage",
              "workspace_root": "/console/o/[orgId]/mortgage",
              "import_record_type": "referral or application",
              "seed_fixture": "seeded-mortgage-import-preview-referral-or-application.csv",
              "preview_mode": "dry_run_preview_only",
              "mutation_policy": "no_database_write_until_confirmed",
              "validation_rules": [
                "schema_validation",
                "tenant_scope_validation",
                "freshness_label_validation",
                "source_precedence_validation"
              ],
              "dedupe_keys": [
                "tenant_id",
                "module_id",
                "source_record_id",
                "normalized_record_fingerprint"
              ],
              "rollback_state": "preview_only_no_mutation",
              "export_posture": {
                "format": "csv_and_json",
                "scope": "tenant_scoped",
                "redaction": "public_safe_and_private_safe",
                "retention": "short_retention_until_approved_export"
              },
              "offboarding_posture": "suspend_imports_preserve_export_and_audit",
              "audit_event": "platform.mortgage.import_preview.generated",
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-import-preview-map.test.ts apps/web/scripts/platform/__tests__/launch-readiness-matrix.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-import-preview-map.test.ts",
              "source_paths": [
                "apps/web/lib/platform/vertical-module-registry.ts",
                "apps/web/lib/platform/launch-readiness-artifact.ts",
                "apps/web/lib/platform/launch-readiness-matrix.ts",
                "docs/features/platform/PLATFORM_STORAGE_ARCHITECTURE.md",
                "docs/features/platform/API_FIRST_SELF_SERVE_CONTROL_PLANE_SPEC.md",
                "docs/features/platform/API_FIRST_SELF_SERVE_READINESS_CONTRACT_SPEC.md",
                "docs/features/platform/DATA_QUALITY_AND_DISPUTES.md"
              ],
              "source_markers": [
                "mortgage",
                "referral or application",
                "disable_mortgage_module_live_actions",
                "Import preview, validation, dedupe, rollback, export, and audit",
                "Import/export posture is explicit.",
                "Temporary staging",
                "import previews",
                "offboarding, data export",
                "audit evidence"
              ],
              "passed_steps": [
                "preview_file",
                "validation_contract",
                "dedupe_contract",
                "rollback_posture",
                "export_posture",
                "offboarding_posture",
                "audit_event"
              ],
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep import preview as a dry-run source contract until runtime import confirmation, rollback drill, and export/offboarding execution are operator-rehearsed.",
              "runtime_confirmation": "deferred_until_operator_rehearsal",
              "import_write_access": "disabled",
              "export_download_access": "disabled",
              "rollback_execution": "deferred",
              "offboarding_execution": "deferred"
            },
            {
              "module_id": "legal",
              "label": "Legal",
              "workspace_root": "/console/o/[orgId]/legal",
              "import_record_type": "matter or document set",
              "seed_fixture": "seeded-legal-import-preview-matter-or-document-set.csv",
              "preview_mode": "dry_run_preview_only",
              "mutation_policy": "no_database_write_until_confirmed",
              "validation_rules": [
                "schema_validation",
                "tenant_scope_validation",
                "freshness_label_validation",
                "source_precedence_validation"
              ],
              "dedupe_keys": [
                "tenant_id",
                "module_id",
                "source_record_id",
                "normalized_record_fingerprint"
              ],
              "rollback_state": "preview_only_no_mutation",
              "export_posture": {
                "format": "csv_and_json",
                "scope": "tenant_scoped",
                "redaction": "public_safe_and_private_safe",
                "retention": "short_retention_until_approved_export"
              },
              "offboarding_posture": "suspend_imports_preserve_export_and_audit",
              "audit_event": "platform.legal.import_preview.generated",
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-import-preview-map.test.ts apps/web/scripts/platform/__tests__/launch-readiness-matrix.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-import-preview-map.test.ts",
              "source_paths": [
                "apps/web/lib/platform/vertical-module-registry.ts",
                "apps/web/lib/platform/launch-readiness-artifact.ts",
                "apps/web/lib/platform/launch-readiness-matrix.ts",
                "docs/features/platform/PLATFORM_STORAGE_ARCHITECTURE.md",
                "docs/features/platform/API_FIRST_SELF_SERVE_CONTROL_PLANE_SPEC.md",
                "docs/features/platform/API_FIRST_SELF_SERVE_READINESS_CONTRACT_SPEC.md",
                "docs/features/platform/DATA_QUALITY_AND_DISPUTES.md"
              ],
              "source_markers": [
                "legal",
                "matter or document set",
                "disable_legal_module_live_actions",
                "Import preview, validation, dedupe, rollback, export, and audit",
                "Import/export posture is explicit.",
                "Temporary staging",
                "import previews",
                "offboarding, data export",
                "audit evidence"
              ],
              "passed_steps": [
                "preview_file",
                "validation_contract",
                "dedupe_contract",
                "rollback_posture",
                "export_posture",
                "offboarding_posture",
                "audit_event"
              ],
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep import preview as a dry-run source contract until runtime import confirmation, rollback drill, and export/offboarding execution are operator-rehearsed.",
              "runtime_confirmation": "deferred_until_operator_rehearsal",
              "import_write_access": "disabled",
              "export_download_access": "disabled",
              "rollback_execution": "deferred",
              "offboarding_execution": "deferred"
            },
            {
              "module_id": "developer",
              "label": "Developer",
              "workspace_root": "/console/o/[orgId]/developer",
              "import_record_type": "project or inventory batch",
              "seed_fixture": "seeded-developer-import-preview-project-or-inventory-batch.csv",
              "preview_mode": "dry_run_preview_only",
              "mutation_policy": "no_database_write_until_confirmed",
              "validation_rules": [
                "schema_validation",
                "tenant_scope_validation",
                "freshness_label_validation",
                "source_precedence_validation"
              ],
              "dedupe_keys": [
                "tenant_id",
                "module_id",
                "source_record_id",
                "normalized_record_fingerprint"
              ],
              "rollback_state": "preview_only_no_mutation",
              "export_posture": {
                "format": "csv_and_json",
                "scope": "tenant_scoped",
                "redaction": "public_safe_and_private_safe",
                "retention": "short_retention_until_approved_export"
              },
              "offboarding_posture": "suspend_imports_preserve_export_and_audit",
              "audit_event": "platform.developer.import_preview.generated",
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-import-preview-map.test.ts apps/web/scripts/platform/__tests__/launch-readiness-matrix.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-import-preview-map.test.ts",
              "source_paths": [
                "apps/web/lib/platform/vertical-module-registry.ts",
                "apps/web/lib/platform/launch-readiness-artifact.ts",
                "apps/web/lib/platform/launch-readiness-matrix.ts",
                "docs/features/platform/PLATFORM_STORAGE_ARCHITECTURE.md",
                "docs/features/platform/API_FIRST_SELF_SERVE_CONTROL_PLANE_SPEC.md",
                "docs/features/platform/API_FIRST_SELF_SERVE_READINESS_CONTRACT_SPEC.md",
                "docs/features/platform/DATA_QUALITY_AND_DISPUTES.md"
              ],
              "source_markers": [
                "developer",
                "project or inventory batch",
                "disable_developer_module_live_actions",
                "Import preview, validation, dedupe, rollback, export, and audit",
                "Import/export posture is explicit.",
                "Temporary staging",
                "import previews",
                "offboarding, data export",
                "audit evidence"
              ],
              "passed_steps": [
                "preview_file",
                "validation_contract",
                "dedupe_contract",
                "rollback_posture",
                "export_posture",
                "offboarding_posture",
                "audit_event"
              ],
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep import preview as a dry-run source contract until runtime import confirmation, rollback drill, and export/offboarding execution are operator-rehearsed.",
              "runtime_confirmation": "deferred_until_operator_rehearsal",
              "import_write_access": "disabled",
              "export_download_access": "disabled",
              "rollback_execution": "deferred",
              "offboarding_execution": "deferred"
            },
            {
              "module_id": "renovation",
              "label": "Renovation",
              "workspace_root": "/console/o/[orgId]/renovation",
              "import_record_type": "project or milestone",
              "seed_fixture": "seeded-renovation-import-preview-project-or-milestone.csv",
              "preview_mode": "dry_run_preview_only",
              "mutation_policy": "no_database_write_until_confirmed",
              "validation_rules": [
                "schema_validation",
                "tenant_scope_validation",
                "freshness_label_validation",
                "source_precedence_validation"
              ],
              "dedupe_keys": [
                "tenant_id",
                "module_id",
                "source_record_id",
                "normalized_record_fingerprint"
              ],
              "rollback_state": "preview_only_no_mutation",
              "export_posture": {
                "format": "csv_and_json",
                "scope": "tenant_scoped",
                "redaction": "public_safe_and_private_safe",
                "retention": "short_retention_until_approved_export"
              },
              "offboarding_posture": "suspend_imports_preserve_export_and_audit",
              "audit_event": "platform.renovation.import_preview.generated",
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-import-preview-map.test.ts apps/web/scripts/platform/__tests__/launch-readiness-matrix.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-import-preview-map.test.ts",
              "source_paths": [
                "apps/web/lib/platform/vertical-module-registry.ts",
                "apps/web/lib/platform/launch-readiness-artifact.ts",
                "apps/web/lib/platform/launch-readiness-matrix.ts",
                "docs/features/platform/PLATFORM_STORAGE_ARCHITECTURE.md",
                "docs/features/platform/API_FIRST_SELF_SERVE_CONTROL_PLANE_SPEC.md",
                "docs/features/platform/API_FIRST_SELF_SERVE_READINESS_CONTRACT_SPEC.md",
                "docs/features/platform/DATA_QUALITY_AND_DISPUTES.md"
              ],
              "source_markers": [
                "renovation",
                "project or milestone",
                "disable_renovation_module_live_actions",
                "Import preview, validation, dedupe, rollback, export, and audit",
                "Import/export posture is explicit.",
                "Temporary staging",
                "import previews",
                "offboarding, data export",
                "audit evidence"
              ],
              "passed_steps": [
                "preview_file",
                "validation_contract",
                "dedupe_contract",
                "rollback_posture",
                "export_posture",
                "offboarding_posture",
                "audit_event"
              ],
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep import preview as a dry-run source contract until runtime import confirmation, rollback drill, and export/offboarding execution are operator-rehearsed.",
              "runtime_confirmation": "deferred_until_operator_rehearsal",
              "import_write_access": "disabled",
              "export_download_access": "disabled",
              "rollback_execution": "deferred",
              "offboarding_execution": "deferred"
            }
          ],
          "execution_gates": [
            {
              "gate_id": "runtime_import_confirmation",
              "action": "Confirm a previewed import and persist tenant-scoped records",
              "status": "blocked_until_operator_rehearsal",
              "allowed": false,
              "required_before_enablement": [
                "tenant_scoped_runtime_path",
                "operator_rehearsal",
                "cross_org_negative_test",
                "audit_event_persistence",
                "rollback_owner_approval"
              ],
              "evidence_path": "apps/web/lib/platform/__tests__/import-export-readiness.test.ts",
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/import-export-readiness.test.ts apps/web/app/api/platform/v1/providers/current/import-export-readiness/__tests__/route.test.ts apps/web/app/api/platform/v1/__tests__/spec-provider-integrations.test.ts",
              "next_action": "Build a tenant-scoped confirmation route with idempotency, audit rows, and cross-org denial proof."
            },
            {
              "gate_id": "export_download",
              "action": "Create and download tenant-scoped export artifacts",
              "status": "blocked_until_operator_rehearsal",
              "allowed": false,
              "required_before_enablement": [
                "tenant_scoped_runtime_path",
                "operator_rehearsal",
                "cross_org_negative_test",
                "audit_event_persistence",
                "rollback_owner_approval"
              ],
              "evidence_path": "apps/web/lib/platform/__tests__/import-export-readiness.test.ts",
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/import-export-readiness.test.ts apps/web/app/api/platform/v1/providers/current/import-export-readiness/__tests__/route.test.ts apps/web/app/api/platform/v1/__tests__/spec-provider-integrations.test.ts",
              "next_action": "Build an export route with redaction, short retention, signed artifact handoff, and private-source denial proof."
            },
            {
              "gate_id": "rollback_execution",
              "action": "Execute an import rollback or compensating reversal",
              "status": "blocked_until_operator_rehearsal",
              "allowed": false,
              "required_before_enablement": [
                "tenant_scoped_runtime_path",
                "operator_rehearsal",
                "cross_org_negative_test",
                "audit_event_persistence",
                "rollback_owner_approval"
              ],
              "evidence_path": "apps/web/lib/platform/__tests__/import-export-readiness.test.ts",
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/import-export-readiness.test.ts apps/web/app/api/platform/v1/providers/current/import-export-readiness/__tests__/route.test.ts apps/web/app/api/platform/v1/__tests__/spec-provider-integrations.test.ts",
              "next_action": "Run an operator rehearsal proving rollback ownership, audit persistence, and no cross-tenant mutation."
            },
            {
              "gate_id": "offboarding_execution",
              "action": "Execute offboarding export and residual-obligation closure",
              "status": "blocked_until_operator_rehearsal",
              "allowed": false,
              "required_before_enablement": [
                "tenant_scoped_runtime_path",
                "operator_rehearsal",
                "cross_org_negative_test",
                "audit_event_persistence",
                "rollback_owner_approval"
              ],
              "evidence_path": "apps/web/lib/platform/__tests__/import-export-readiness.test.ts",
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/import-export-readiness.test.ts apps/web/app/api/platform/v1/providers/current/import-export-readiness/__tests__/route.test.ts apps/web/app/api/platform/v1/__tests__/spec-provider-integrations.test.ts",
              "next_action": "Define offboarding owner approval, export availability, credential deactivation, and audit-safe retention proof."
            }
          ],
          "execution_ledger": {
            "source": "platform.import_export_runs",
            "item_source": "platform.import_export_run_items",
            "access_model": "service_role_redacted_summary",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "environment": "sandbox",
            "recent_run_limit": 25,
            "recent_run_count": 0,
            "recent_item_count": 0,
            "status_breakdown": [],
            "latest_run": null,
            "runtime_actions_enabled": false,
            "raw_file_payload_visible": false,
            "private_source_evidence_visible": false,
            "external_provider_calls_enabled": false
          },
          "summary": {
            "total_verticals": 7,
            "preview_files_declared": 7,
            "validation_contracts": 7,
            "dedupe_contracts": 7,
            "rollback_postures": 7,
            "export_postures": 7,
            "offboarding_postures": 7,
            "audit_events": 7,
            "launch_ready_contracts": 7,
            "source_contract": "vertical_import_preview_contract",
            "phase": "phase_0_readiness_only",
            "runtime_import_confirmation": "deferred_until_operator_rehearsal",
            "export_execution_model": "deferred_until_tenant_scoped_runtime_paths",
            "rollback_execution_model": "deferred_until_operator_rehearsal",
            "execution_gate_contract": "runtime_actions_blocked_v1",
            "execution_gates_declared": 4,
            "execution_gates_blocked": 4
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "required_scope": "platform.import_export_readiness.read",
            "granted_migration_scopes": [
              "platform.import_export_readiness.read"
            ],
            "actor_model": "api_key_automation_client",
            "data_access": "import_export_readiness_contract_only",
            "mutation_access": "runtime_import_export_writes_deferred"
          },
          "public_safety": {
            "database_writes_allowed": false,
            "import_confirmation_allowed": false,
            "export_download_allowed": false,
            "rollback_execution_allowed": false,
            "offboarding_execution_allowed": false,
            "private_source_evidence_visible": false,
            "raw_file_payload_visible": false,
            "external_provider_calls": false
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "service_provider",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_import_export_readiness"
        }
      },
      "PlatformProductCatalogSandbox": {
        "summary": "Platform product catalog for sandbox builders",
        "value": {
          "catalog": {
            "version": "2026.06",
            "source_spec": "docs/features/platform/API_PRODUCT_CATALOG_SPEC.md",
            "generated_from": "code_config",
            "environment": "sandbox"
          },
          "organization": {
            "id": "00000000-0000-4000-8000-000000000001",
            "slug": "sandbox-platform-demo",
            "display_name": "Sandbox Platform Demo",
            "type": "partner"
          },
          "products": [
            {
              "id": "platform_discovery",
              "display_name": "Platform Discovery",
              "summary": "Organization context, OpenAPI, product catalog, readiness links, and safe discovery for humans, SDKs, CLIs, and AI agents.",
              "owner_team": "platform",
              "target_builders": [
                "ai_agent",
                "platform_operator",
                "service_provider",
                "agent",
                "agency"
              ],
              "launch_stage": "available_sandbox",
              "risk_tier": "low",
              "data_classification": "partner",
              "available_environments": [
                "sandbox",
                "live"
              ],
              "required_scopes": [
                "organizations.read"
              ],
              "commercial_package_ids": [
                "sandbox_developer",
                "pilot_partner_api",
                "production_partner_api"
              ],
              "support_tier": "async",
              "pricing_posture": "non_billable",
              "rest_routes": [
                {
                  "method": "GET",
                  "path": "/products",
                  "operation_id": "listPlatformProducts",
                  "availability": "available_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/organizations/current",
                  "operation_id": "getCurrentOrganization",
                  "availability": "available_sandbox"
                }
              ],
              "webhook_events": [],
              "status_components": [
                "rest_api",
                "docs_partner_portal"
              ],
              "live_gate_ids": [
                "status_component_ready"
              ],
              "required_evidence": [
                {
                  "id": "status_component_ready",
                  "label": "Discovery routes and adapters smoke-tested",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                }
              ],
              "ai_agent_policy": {
                "readable": true,
                "mcp_tool_name": null,
                "mutating_tools": "none",
                "human_approval_required": false,
                "data_sensitivity": "partner",
                "tool_contract": "REST/OpenAPI only; SDK, CLI, and MCP must not bypass platform API routes"
              },
              "docs": [
                "docs/api/PLATFORM_API.md",
                "docs/features/platform/API_PRODUCT_CATALOG_SPEC.md"
              ],
              "blocked_claims": [
                "product discovery does not grant scopes",
                "product discovery does not create credentials",
                "OpenAPI remains the source contract for SDK and CLI adapters"
              ]
            },
            {
              "id": "service_provider_onboarding",
              "display_name": "Service Provider Onboarding",
              "summary": "Headless onboarding readiness, contract package discovery, sandbox terms acceptance, partner evidence submission, sandbox credential issuance, and live-access request gates.",
              "owner_team": "platform",
              "target_builders": [
                "service_provider",
                "ai_agent",
                "platform_operator"
              ],
              "launch_stage": "available_sandbox",
              "risk_tier": "high",
              "data_classification": "confidential",
              "available_environments": [
                "sandbox",
                "live"
              ],
              "required_scopes": [
                "organizations.read",
                "onboarding.write",
                "credentials.write"
              ],
              "commercial_package_ids": [
                "pilot_partner_api",
                "production_partner_api"
              ],
              "support_tier": "named_owner",
              "pricing_posture": "observe_only",
              "rest_routes": [
                {
                  "method": "GET",
                  "path": "/onboarding/readiness",
                  "operation_id": "getOnboardingReadiness",
                  "availability": "available_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/onboarding/contracts/packages",
                  "operation_id": "listOnboardingContractPackages",
                  "availability": "available_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/onboarding/contracts/envelopes/current",
                  "operation_id": "getOnboardingContractEnvelope",
                  "availability": "available_sandbox"
                },
                {
                  "method": "POST",
                  "path": "/onboarding/terms/acceptance",
                  "operation_id": "acceptOnboardingTerms",
                  "availability": "available_sandbox"
                },
                {
                  "method": "POST",
                  "path": "/onboarding/evidence",
                  "operation_id": "submitOnboardingEvidence",
                  "availability": "available_sandbox"
                },
                {
                  "method": "POST",
                  "path": "/onboarding/credentials/sandbox-key",
                  "operation_id": "createOnboardingSandboxCredential",
                  "availability": "available_sandbox"
                },
                {
                  "method": "POST",
                  "path": "/onboarding/live-access/request",
                  "operation_id": "requestOnboardingLiveAccess",
                  "availability": "available_sandbox"
                }
              ],
              "webhook_events": [],
              "status_components": [
                "rest_api",
                "sandbox",
                "docs_partner_portal"
              ],
              "live_gate_ids": [
                "current_terms_acceptance",
                "sandbox_credential_issued",
                "support_owner_recorded",
                "business_authority_verified",
                "contract_signature_recorded",
                "commercial_terms_approved",
                "manual_live_review_approval",
                "status_component_ready"
              ],
              "required_evidence": [
                {
                  "id": "current_terms_acceptance",
                  "label": "Current platform terms accepted",
                  "owner": "legal",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "sandbox_credential_issued",
                  "label": "Sandbox credential issued and smoke-tested",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "support_owner_recorded",
                  "label": "Support owner recorded",
                  "owner": "support",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "business_authority_verified",
                  "label": "Business authority verified",
                  "owner": "compliance",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "contract_signature_recorded",
                  "label": "Contract signature recorded",
                  "owner": "legal",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "commercial_terms_approved",
                  "label": "Commercial terms approved",
                  "owner": "finance",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "manual_live_review_approval",
                  "label": "Manual live review approved",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "status_component_ready",
                  "label": "Status component and incident path ready",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                }
              ],
              "ai_agent_policy": {
                "readable": true,
                "mcp_tool_name": null,
                "mutating_tools": "human_approved_only",
                "human_approval_required": true,
                "data_sensitivity": "confidential",
                "tool_contract": "REST/OpenAPI only; SDK, CLI, and MCP must not bypass platform API routes"
              },
              "docs": [
                "docs/features/platform/PLATFORM_CONTRACT_SIGNING_AND_COMMERCIAL_TERMS_SPEC.md",
                "docs/features/platform/API_FIRST_PLATFORM_READINESS_FINDINGS.md"
              ],
              "blocked_claims": [
                "live credentials require manual review and commercial approval",
                "identity verification rails are not contract signatures by themselves",
                "AI agents may read and draft but cannot accept terms or request live access autonomously",
                "partner onboarding status remains authenticated or operator-visible until public-status gates pass"
              ]
            },
            {
              "id": "listing_inventory",
              "display_name": "Listing Inventory",
              "summary": "Public-safe property listing search and detail reads for partner apps, agents, agencies, owner/landlord surfaces, and AI assistants.",
              "owner_team": "marketplace",
              "target_builders": [
                "service_provider",
                "agent",
                "agency",
                "owner_landlord",
                "ai_agent"
              ],
              "launch_stage": "available_sandbox",
              "risk_tier": "medium",
              "data_classification": "public",
              "available_environments": [
                "sandbox",
                "live"
              ],
              "required_scopes": [
                "listings.read"
              ],
              "commercial_package_ids": [
                "sandbox_developer",
                "pilot_partner_api",
                "production_partner_api"
              ],
              "support_tier": "async",
              "pricing_posture": "observe_only",
              "rest_routes": [
                {
                  "method": "GET",
                  "path": "/listings",
                  "operation_id": "listListings",
                  "availability": "available_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/listings/{id}",
                  "operation_id": "getListing",
                  "availability": "available_sandbox"
                }
              ],
              "webhook_events": [
                "listing.updated"
              ],
              "status_components": [
                "rest_api",
                "docs_partner_portal"
              ],
              "live_gate_ids": [
                "status_component_ready",
                "manual_live_review_approval"
              ],
              "required_evidence": [
                {
                  "id": "status_component_ready",
                  "label": "Listing read route smoke-tested",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "manual_live_review_approval",
                  "label": "Live data-source exposure approved",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                }
              ],
              "ai_agent_policy": {
                "readable": true,
                "mcp_tool_name": null,
                "mutating_tools": "none",
                "human_approval_required": false,
                "data_sensitivity": "public",
                "tool_contract": "REST/OpenAPI only; SDK, CLI, and MCP must not bypass platform API routes"
              },
              "docs": [
                "docs/api/PLATFORM_API.md",
                "docs/features/platform/API_PRODUCT_CATALOG_SPEC.md"
              ],
              "blocked_claims": [
                "listing reads never expose owner contact details",
                "listing reads never expose private notes or source-agent contact metadata"
              ]
            },
            {
              "id": "partner_listing_feed",
              "display_name": "Partner Listing Feed",
              "summary": "Licensed estate agencies submit, update, read and withdraw listings with CEA salesperson and marketing-authority evidence; every new listing and material change waits for a Homejourney reviewer before it publishes.",
              "owner_team": "marketplace",
              "target_builders": [
                "agency",
                "ai_agent"
              ],
              "launch_stage": "available_sandbox",
              "risk_tier": "high",
              "data_classification": "confidential",
              "available_environments": [
                "sandbox"
              ],
              "required_scopes": [
                "listings.read",
                "listings.write"
              ],
              "commercial_package_ids": [
                "pilot_partner_api",
                "production_partner_api"
              ],
              "support_tier": "named_owner",
              "pricing_posture": "manual_review",
              "rest_routes": [
                {
                  "method": "GET",
                  "path": "/listing-feed/listings",
                  "operation_id": "listListingFeedListings",
                  "availability": "available_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/listing-feed/listings/{externalRef}",
                  "operation_id": "getListingFeedListing",
                  "availability": "available_sandbox"
                },
                {
                  "method": "PUT",
                  "path": "/listing-feed/listings/{externalRef}",
                  "operation_id": "putListingFeedListing",
                  "availability": "available_sandbox"
                },
                {
                  "method": "DELETE",
                  "path": "/listing-feed/listings/{externalRef}",
                  "operation_id": "withdrawListingFeedListing",
                  "availability": "available_sandbox"
                }
              ],
              "webhook_events": [
                "listing_feed.status_changed"
              ],
              "status_components": [
                "rest_api",
                "docs_partner_portal"
              ],
              "live_gate_ids": [
                "current_terms_acceptance",
                "sandbox_credential_issued",
                "support_owner_recorded",
                "business_authority_verified",
                "contract_signature_recorded",
                "commercial_terms_approved",
                "manual_live_review_approval",
                "status_component_ready",
                "listing_feed_agency_licence_verified",
                "listing_feed_review_tools_ready"
              ],
              "required_evidence": [
                {
                  "id": "current_terms_acceptance",
                  "label": "Current platform terms accepted",
                  "owner": "legal",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "sandbox_credential_issued",
                  "label": "Sandbox credential issued and smoke-tested",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "support_owner_recorded",
                  "label": "Support owner recorded",
                  "owner": "support",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "business_authority_verified",
                  "label": "Business authority verified",
                  "owner": "compliance",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "contract_signature_recorded",
                  "label": "Contract signature recorded",
                  "owner": "legal",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "commercial_terms_approved",
                  "label": "Commercial terms approved",
                  "owner": "finance",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "manual_live_review_approval",
                  "label": "Manual live review approved",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "status_component_ready",
                  "label": "Status component and incident path ready",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "listing_feed_agency_licence_verified",
                  "label": "Estate agency licence verified on the CEA register and its feed source created",
                  "owner": "marketplace",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "listing_feed_review_tools_ready",
                  "label": "Reviewer approve and reject tools and the salesperson disown path proven",
                  "owner": "marketplace",
                  "required_for": [
                    "live_access"
                  ]
                }
              ],
              "ai_agent_policy": {
                "readable": true,
                "mcp_tool_name": null,
                "mutating_tools": "human_approved_only",
                "human_approval_required": true,
                "data_sensitivity": "confidential",
                "tool_contract": "REST/OpenAPI only; SDK, CLI, and MCP must not bypass platform API routes"
              },
              "docs": [
                "docs/api/PLATFORM_API.md",
                "docs/features/platform/PARTNER_LISTING_FEED_SPEC.md",
                "docs/features/platform/API_PRODUCT_CATALOG_SPEC.md"
              ],
              "blocked_claims": [
                "feed listings never publish without a Homejourney reviewer decision",
                "live feed writes need a verified licensed estate agency; sandbox writes never reach Homejourney listings",
                "feed responses never return owner contact details or the marketing authority agreement"
              ]
            },
            {
              "id": "provider_ai_workspace_graph",
              "display_name": "Provider AI Workspace Graph",
              "summary": "Sandbox provider workspace graph for AI agents, including provider profile, catalog, website, lead, booking, integration, continuation URL, freshness, and public-safety summaries.",
              "owner_team": "provider-platform",
              "target_builders": [
                "service_provider",
                "ai_agent",
                "platform_operator"
              ],
              "launch_stage": "available_sandbox",
              "risk_tier": "high",
              "data_classification": "confidential",
              "available_environments": [
                "sandbox"
              ],
              "required_scopes": [
                "provider_workspace.read",
                "provider_leads.read",
                "provider_bookings.manage",
                "provider_conversations.write",
                "provider_sites.read",
                "provider_sites.write",
                "provider_ai.permissions.manage"
              ],
              "commercial_package_ids": [
                "pilot_partner_api",
                "production_partner_api"
              ],
              "support_tier": "named_owner",
              "pricing_posture": "manual_review",
              "rest_routes": [
                {
                  "method": "GET",
                  "path": "/providers/current/ai/graph",
                  "operation_id": "getCurrentProviderAiGraph",
                  "availability": "available_sandbox"
                },
                {
                  "method": "POST",
                  "path": "/providers/current/ai/actions",
                  "operation_id": "createCurrentProviderAiAction",
                  "availability": "available_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/providers/current/ai/sync-health",
                  "operation_id": "getCurrentProviderAiSyncHealth",
                  "availability": "available_sandbox"
                }
              ],
              "webhook_events": [],
              "status_components": [
                "rest_api",
                "docs_partner_portal"
              ],
              "live_gate_ids": [
                "current_terms_acceptance",
                "sandbox_credential_issued",
                "support_owner_recorded",
                "business_authority_verified",
                "contract_signature_recorded",
                "commercial_terms_approved",
                "manual_live_review_approval",
                "status_component_ready",
                "provider_ai_grant_model_ready"
              ],
              "required_evidence": [
                {
                  "id": "current_terms_acceptance",
                  "label": "Current platform terms accepted",
                  "owner": "legal",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "sandbox_credential_issued",
                  "label": "Sandbox credential issued and smoke-tested",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "support_owner_recorded",
                  "label": "Support owner recorded",
                  "owner": "support",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "business_authority_verified",
                  "label": "Business authority verified",
                  "owner": "compliance",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "contract_signature_recorded",
                  "label": "Contract signature recorded",
                  "owner": "legal",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "commercial_terms_approved",
                  "label": "Commercial terms approved",
                  "owner": "finance",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "manual_live_review_approval",
                  "label": "Manual live review approved",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "status_component_ready",
                  "label": "Status component and incident path ready",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "provider_ai_grant_model_ready",
                  "label": "Provider install/grant model approved for private workspace data",
                  "owner": "provider-platform",
                  "required_for": [
                    "live_access"
                  ]
                }
              ],
              "ai_agent_policy": {
                "readable": true,
                "mcp_tool_name": null,
                "mutating_tools": "explicit_confirmation",
                "human_approval_required": true,
                "data_sensitivity": "confidential",
                "tool_contract": "REST/OpenAPI only; SDK, CLI, and MCP must not bypass platform API routes"
              },
              "docs": [
                "docs/api/PLATFORM_API.md",
                "docs/features/platform/PROVIDER_AI_NATIVE_OS_SPEC.md",
                "docs/features/platform/API_PRODUCT_CATALOG_SPEC.md"
              ],
              "blocked_claims": [
                "API-key-only access does not authorize private customer data",
                "graph reads return IDs, statuses, summaries, continuation URLs, and freshness only",
                "SDK and CLI adapters call REST and never call provider systems directly",
                "confirmed actions require explicit confirmation and idempotency",
                "stale external scheduler data remains request/handoff, not confirmed appointment",
                "live provider graph access requires explicit provider install/grant approval"
              ]
            },
            {
              "id": "provider_integrations_directory",
              "display_name": "Provider Integrations Directory",
              "summary": "Read-only connected-app directory metadata and install/revocation gates for provider workspaces, including certification, credential posture, source mode, sync health, support owner, consent posture, revocation fan-out, and deferred install actions.",
              "owner_team": "platform_integrations",
              "target_builders": [
                "service_provider",
                "ai_agent",
                "platform_operator"
              ],
              "launch_stage": "available_sandbox",
              "risk_tier": "medium",
              "data_classification": "partner",
              "available_environments": [
                "sandbox",
                "live"
              ],
              "required_scopes": [
                "provider_workspace.read",
                "provider_integrations.manage"
              ],
              "commercial_package_ids": [
                "sandbox_developer",
                "pilot_partner_api",
                "production_partner_api"
              ],
              "support_tier": "async",
              "pricing_posture": "observe_only",
              "rest_routes": [
                {
                  "method": "GET",
                  "path": "/providers/current/integrations",
                  "operation_id": "listCurrentProviderIntegrations",
                  "availability": "available_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/providers/current/integrations/{appId}/install-gate",
                  "operation_id": "getCurrentProviderIntegrationInstallGate",
                  "availability": "available_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/providers/current/integrations/{appId}/revocation-gate",
                  "operation_id": "getCurrentProviderIntegrationRevocationGate",
                  "availability": "available_sandbox"
                }
              ],
              "webhook_events": [],
              "status_components": [
                "rest_api",
                "docs_partner_portal"
              ],
              "live_gate_ids": [
                "status_component_ready",
                "manual_live_review_approval"
              ],
              "required_evidence": [
                {
                  "id": "status_component_ready",
                  "label": "Provider integrations directory route smoke-tested",
                  "owner": "platform_integrations",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "manual_live_review_approval",
                  "label": "Live directory metadata exposure approved",
                  "owner": "platform_integrations",
                  "required_for": [
                    "live_access"
                  ]
                }
              ],
              "ai_agent_policy": {
                "readable": true,
                "mcp_tool_name": null,
                "mutating_tools": "none",
                "human_approval_required": false,
                "data_sensitivity": "partner",
                "tool_contract": "REST/OpenAPI only; SDK, CLI, and MCP must not bypass platform API routes"
              },
              "docs": [
                "docs/api/PLATFORM_API.md",
                "docs/features/platform/PROVIDER_OPEN_INTEGRATION_APP_MODEL_SPEC.md",
                "docs/features/platform/API_PRODUCT_CATALOG_SPEC.md"
              ],
              "blocked_claims": [
                "provider integrations directory reads never return raw credentials or OAuth tokens",
                "provider integrations directory reads never call external provider systems",
                "install and revocation gate reads never mutate connected-app state",
                "install, pause, resume, and revoke mutations remain deferred to future mutating routes"
              ]
            },
            {
              "id": "import_export_readiness",
              "display_name": "Import/export Readiness",
              "summary": "Read-only Phase 0 import/export readiness contracts for all launch verticals, covering dry-run preview, validation, dedupe, rollback, export, offboarding, and audit posture.",
              "owner_team": "platform_integrations",
              "target_builders": [
                "service_provider",
                "agent",
                "agency",
                "developer",
                "platform_operator"
              ],
              "launch_stage": "available_sandbox",
              "risk_tier": "medium",
              "data_classification": "partner",
              "available_environments": [
                "sandbox",
                "live"
              ],
              "required_scopes": [
                "platform.import_export_readiness.read"
              ],
              "commercial_package_ids": [
                "sandbox_developer",
                "pilot_partner_api",
                "production_partner_api"
              ],
              "support_tier": "async",
              "pricing_posture": "observe_only",
              "rest_routes": [
                {
                  "method": "GET",
                  "path": "/providers/current/import-export-readiness",
                  "operation_id": "listCurrentProviderImportExportReadiness",
                  "availability": "available_sandbox"
                }
              ],
              "webhook_events": [],
              "status_components": [
                "rest_api",
                "docs_partner_portal"
              ],
              "live_gate_ids": [
                "status_component_ready",
                "manual_live_review_approval"
              ],
              "required_evidence": [
                {
                  "id": "status_component_ready",
                  "label": "Import/export readiness route smoke-tested",
                  "owner": "platform_integrations",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "manual_live_review_approval",
                  "label": "Runtime import/export execution model approved",
                  "owner": "platform_integrations",
                  "required_for": [
                    "live_access"
                  ]
                }
              ],
              "ai_agent_policy": {
                "readable": true,
                "mcp_tool_name": null,
                "mutating_tools": "none",
                "human_approval_required": false,
                "data_sensitivity": "partner",
                "tool_contract": "REST/OpenAPI only; SDK, CLI, and MCP must not bypass platform API routes"
              },
              "docs": [
                "docs/api/PLATFORM_API.md",
                "docs/features/platform/API_FIRST_MIGRATION_COMPATIBILITY_SPEC.md",
                "docs/features/platform/DATA_QUALITY_AND_DISPUTES.md",
                "docs/features/platform/API_PRODUCT_CATALOG_SPEC.md"
              ],
              "blocked_claims": [
                "import/export readiness reads never confirm imports or write database rows",
                "import/export readiness reads never return raw uploaded files or private source evidence",
                "export downloads, rollback execution, and offboarding execution remain deferred",
                "runtime import/export writes require a later operator-rehearsed route"
              ]
            },
            {
              "id": "renovation_project_workspace",
              "display_name": "Renovation Project Workspace",
              "summary": "Sandbox Renovation project, milestone, progress, and review-material preparation APIs with idempotency, optimistic progress conflicts, redacted responses, and no live side effects.",
              "owner_team": "platform_renovation",
              "target_builders": [
                "service_provider",
                "ai_agent",
                "platform_operator"
              ],
              "launch_stage": "available_sandbox",
              "risk_tier": "high",
              "data_classification": "confidential",
              "available_environments": [
                "sandbox"
              ],
              "required_scopes": [
                "renovations.projects.read",
                "renovations.projects.write"
              ],
              "commercial_package_ids": [
                "pilot_partner_api",
                "production_partner_api"
              ],
              "support_tier": "named_owner",
              "pricing_posture": "manual_review",
              "rest_routes": [
                {
                  "method": "GET",
                  "path": "/renovations/current/projects",
                  "operation_id": "listRenovationProjects",
                  "availability": "available_sandbox"
                },
                {
                  "method": "POST",
                  "path": "/renovations/current/projects",
                  "operation_id": "createRenovationProject",
                  "availability": "available_sandbox"
                },
                {
                  "method": "POST",
                  "path": "/renovations/current/projects/{projectId}/actions",
                  "operation_id": "prepareRenovationProjectAction",
                  "availability": "available_sandbox"
                },
                {
                  "method": "POST",
                  "path": "/renovations/current/projects/{projectId}/milestones",
                  "operation_id": "createRenovationMilestone",
                  "availability": "available_sandbox"
                },
                {
                  "method": "POST",
                  "path": "/renovations/current/milestones/{milestoneId}/progress",
                  "operation_id": "submitRenovationProgress",
                  "availability": "available_sandbox"
                }
              ],
              "webhook_events": [],
              "status_components": [
                "rest_api",
                "module_renovation_workspace",
                "docs_partner_portal"
              ],
              "live_gate_ids": [
                "current_terms_acceptance",
                "sandbox_credential_issued",
                "support_owner_recorded",
                "business_authority_verified",
                "contract_signature_recorded",
                "commercial_terms_approved",
                "manual_live_review_approval",
                "status_component_ready",
                "renovation_workspace_restricted_route_ready",
                "renovation_live_action_review"
              ],
              "required_evidence": [
                {
                  "id": "current_terms_acceptance",
                  "label": "Current platform terms accepted",
                  "owner": "legal",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "sandbox_credential_issued",
                  "label": "Sandbox credential issued and smoke-tested",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "support_owner_recorded",
                  "label": "Support owner recorded",
                  "owner": "support",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "business_authority_verified",
                  "label": "Business authority verified",
                  "owner": "compliance",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "contract_signature_recorded",
                  "label": "Contract signature recorded",
                  "owner": "legal",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "commercial_terms_approved",
                  "label": "Commercial terms approved",
                  "owner": "finance",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "manual_live_review_approval",
                  "label": "Manual live review approved",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "status_component_ready",
                  "label": "Status component and incident path ready",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "renovation_workspace_restricted_route_ready",
                  "label": "Renovation restricted workspace, project, milestone, and progress proof exists",
                  "owner": "platform_renovation",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "renovation_live_action_review",
                  "label": "Renovation live project actions approved with billing, support, and rollback evidence",
                  "owner": "platform_renovation",
                  "required_for": [
                    "live_access"
                  ]
                }
              ],
              "ai_agent_policy": {
                "readable": true,
                "mcp_tool_name": null,
                "mutating_tools": "human_approved_only",
                "human_approval_required": true,
                "data_sensitivity": "confidential",
                "tool_contract": "REST/OpenAPI only; SDK, CLI, and MCP must not bypass platform API routes"
              },
              "docs": [
                "docs/api/PLATFORM_API.md",
                "docs/features/platform/RENOVATION_MODULE_SPEC.md",
                "docs/features/platform/API_PRODUCT_CATALOG_SPEC.md"
              ],
              "blocked_claims": [
                "renovation project APIs are sandbox-only and do not enable live project actions",
                "renovation responses never return raw client PII, raw site addresses, documents, supplier pricing, margin, or payment state",
                "the CLI prepare adapter requires confirmation and idempotency and cannot confirm or execute Renovation actions",
                "staff invites, import/export, billing/support, documents, supplier workflows, and live promotion remain separate rollout gates"
              ]
            },
            {
              "id": "lead_viewing_requests",
              "display_name": "Lead And Viewing Requests",
              "summary": "Viewing request creation and status reads with idempotency, consent evidence, and public-safe status outputs.",
              "owner_team": "marketplace",
              "target_builders": [
                "agent",
                "agency",
                "service_provider",
                "ai_agent"
              ],
              "launch_stage": "available_sandbox",
              "risk_tier": "high",
              "data_classification": "confidential",
              "available_environments": [
                "sandbox",
                "live"
              ],
              "required_scopes": [
                "viewings.read",
                "viewings.write"
              ],
              "commercial_package_ids": [
                "pilot_partner_api",
                "production_partner_api"
              ],
              "support_tier": "named_owner",
              "pricing_posture": "observe_only",
              "rest_routes": [
                {
                  "method": "POST",
                  "path": "/viewing-requests",
                  "operation_id": "createViewingRequest",
                  "availability": "available_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/viewing-requests/{id}",
                  "operation_id": "getViewingRequest",
                  "availability": "available_sandbox"
                }
              ],
              "webhook_events": [
                "viewing.requested",
                "viewing.status_changed"
              ],
              "status_components": [
                "rest_api",
                "webhook_delivery"
              ],
              "live_gate_ids": [
                "current_terms_acceptance",
                "sandbox_credential_issued",
                "support_owner_recorded",
                "business_authority_verified",
                "contract_signature_recorded",
                "commercial_terms_approved",
                "manual_live_review_approval",
                "status_component_ready"
              ],
              "required_evidence": [
                {
                  "id": "current_terms_acceptance",
                  "label": "Current platform terms accepted",
                  "owner": "legal",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "sandbox_credential_issued",
                  "label": "Sandbox credential issued and smoke-tested",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "support_owner_recorded",
                  "label": "Support owner recorded",
                  "owner": "support",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "business_authority_verified",
                  "label": "Business authority verified",
                  "owner": "compliance",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "contract_signature_recorded",
                  "label": "Contract signature recorded",
                  "owner": "legal",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "commercial_terms_approved",
                  "label": "Commercial terms approved",
                  "owner": "finance",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "manual_live_review_approval",
                  "label": "Manual live review approved",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "status_component_ready",
                  "label": "Status component and incident path ready",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                }
              ],
              "ai_agent_policy": {
                "readable": true,
                "mcp_tool_name": null,
                "mutating_tools": "human_approved_only",
                "human_approval_required": true,
                "data_sensitivity": "confidential",
                "tool_contract": "REST/OpenAPI only; SDK, CLI, and MCP must not bypass platform API routes"
              },
              "docs": [
                "docs/api/PLATFORM_API.md",
                "docs/features/platform/API_PRODUCT_CATALOG_SPEC.md"
              ],
              "blocked_claims": [
                "viewing creation requires explicit partner-provided consent fields",
                "CLI mutating flows require idempotency and explicit confirmation"
              ]
            },
            {
              "id": "agent_agency_workspace",
              "display_name": "Agent And Agency Workspace",
              "summary": "Sandbox agent and agency profile, roster, listing, lead, analytics, distribution, integration, and audit reads.",
              "owner_team": "agent-platform",
              "target_builders": [
                "agent",
                "agency",
                "ai_agent"
              ],
              "launch_stage": "read_only_sandbox",
              "risk_tier": "high",
              "data_classification": "confidential",
              "available_environments": [
                "sandbox"
              ],
              "required_scopes": [
                "agent.profile.read",
                "agent.listings.read",
                "agent.analytics.read",
                "agent.distribution.read",
                "agent.viewings.read",
                "agent.leads.read",
                "agent.clients.read",
                "agency.roster.read",
                "agency.analytics.read",
                "agency.audit.read",
                "agency.integrations.manage",
                "agency.leads.route",
                "agency.listings.read"
              ],
              "commercial_package_ids": [
                "pilot_partner_api",
                "production_partner_api"
              ],
              "support_tier": "named_owner",
              "pricing_posture": "manual_review",
              "rest_routes": [
                {
                  "method": "GET",
                  "path": "/agents/current",
                  "operation_id": "getCurrentAgent",
                  "availability": "read_only_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/agents/current/profile",
                  "operation_id": "getCurrentAgentProfile",
                  "availability": "read_only_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/agents/current/analytics",
                  "operation_id": "getCurrentAgentAnalytics",
                  "availability": "read_only_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/agencies/current/roster",
                  "operation_id": "listCurrentAgencyRoster",
                  "availability": "read_only_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/agencies/current/audit-events",
                  "operation_id": "listCurrentAgencyAuditEvents",
                  "availability": "read_only_sandbox"
                }
              ],
              "webhook_events": [],
              "status_components": [
                "rest_api",
                "sandbox"
              ],
              "live_gate_ids": [
                "current_terms_acceptance",
                "sandbox_credential_issued",
                "support_owner_recorded",
                "business_authority_verified",
                "contract_signature_recorded",
                "commercial_terms_approved",
                "manual_live_review_approval",
                "status_component_ready",
                "agent_agency_live_data_review"
              ],
              "required_evidence": [
                {
                  "id": "current_terms_acceptance",
                  "label": "Current platform terms accepted",
                  "owner": "legal",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "sandbox_credential_issued",
                  "label": "Sandbox credential issued and smoke-tested",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "support_owner_recorded",
                  "label": "Support owner recorded",
                  "owner": "support",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "business_authority_verified",
                  "label": "Business authority verified",
                  "owner": "compliance",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "contract_signature_recorded",
                  "label": "Contract signature recorded",
                  "owner": "legal",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "commercial_terms_approved",
                  "label": "Commercial terms approved",
                  "owner": "finance",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "manual_live_review_approval",
                  "label": "Manual live review approved",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "status_component_ready",
                  "label": "Status component and incident path ready",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "agent_agency_live_data_review",
                  "label": "Live agent/agency data exposure approved",
                  "owner": "compliance",
                  "required_for": [
                    "live_access"
                  ]
                }
              ],
              "ai_agent_policy": {
                "readable": true,
                "mcp_tool_name": null,
                "mutating_tools": "none",
                "human_approval_required": false,
                "data_sensitivity": "confidential",
                "tool_contract": "REST/OpenAPI only; SDK, CLI, and MCP must not bypass platform API routes"
              },
              "docs": [
                "docs/api/PLATFORM_API.md",
                "docs/features/platform/API_PRODUCT_CATALOG_SPEC.md"
              ],
              "blocked_claims": [
                "sandbox reads do not expose live agent identity",
                "sandbox reads do not expose customer PII or CRM secrets",
                "write controls remain unavailable until live agency governance ships"
              ]
            },
            {
              "id": "partner_sites",
              "display_name": "Partner Sites",
              "summary": "Sandbox partner-site, page, form, and domain reads for agency, agent, developer, and owner-owned distribution surfaces.",
              "owner_team": "growth-platform",
              "target_builders": [
                "partner_site_owner",
                "agent",
                "agency",
                "developer",
                "ai_agent"
              ],
              "launch_stage": "read_only_sandbox",
              "risk_tier": "medium",
              "data_classification": "partner",
              "available_environments": [
                "sandbox"
              ],
              "required_scopes": [
                "sites.read",
                "forms.read"
              ],
              "commercial_package_ids": [
                "pilot_partner_api",
                "production_partner_api"
              ],
              "support_tier": "async",
              "pricing_posture": "manual_review",
              "rest_routes": [
                {
                  "method": "GET",
                  "path": "/sites",
                  "operation_id": "listSites",
                  "availability": "read_only_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/sites/{id}",
                  "operation_id": "getSite",
                  "availability": "read_only_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/sites/{id}/pages",
                  "operation_id": "listSitePages",
                  "availability": "read_only_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/sites/{id}/forms",
                  "operation_id": "listSiteForms",
                  "availability": "read_only_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/sites/{id}/domains",
                  "operation_id": "listSiteDomains",
                  "availability": "read_only_sandbox"
                }
              ],
              "webhook_events": [],
              "status_components": [
                "partner_sites",
                "docs_partner_portal"
              ],
              "live_gate_ids": [
                "partner_site_routes_ready",
                "manual_live_review_approval"
              ],
              "required_evidence": [
                {
                  "id": "partner_site_routes_ready",
                  "label": "Partner-site routes and rollback checks exist",
                  "owner": "growth-platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "manual_live_review_approval",
                  "label": "Live partner-site publishing approved",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                }
              ],
              "ai_agent_policy": {
                "readable": true,
                "mcp_tool_name": null,
                "mutating_tools": "none",
                "human_approval_required": false,
                "data_sensitivity": "partner",
                "tool_contract": "REST/OpenAPI only; SDK, CLI, and MCP must not bypass platform API routes"
              },
              "docs": [
                "docs/api/PLATFORM_API.md",
                "docs/features/platform/API_PRODUCT_CATALOG_SPEC.md"
              ],
              "blocked_claims": [
                "site reads do not publish pages or domains",
                "form reads do not expose raw submissions or CRM exports"
              ]
            },
            {
              "id": "developer_inventory",
              "display_name": "Developer Inventory",
              "summary": "Sandbox developer project, unit, unit-type, price-list, media, inventory-batch, lead-routing, and showflat request APIs.",
              "owner_team": "developer-platform",
              "target_builders": [
                "developer",
                "agency",
                "ai_agent"
              ],
              "launch_stage": "read_only_sandbox",
              "risk_tier": "high",
              "data_classification": "partner",
              "available_environments": [
                "sandbox"
              ],
              "required_scopes": [
                "developers.projects.read",
                "developers.inventory.read",
                "developers.prices.read",
                "developers.showflat.read",
                "developers.showflat.write",
                "developers.leads.route"
              ],
              "commercial_package_ids": [
                "pilot_partner_api",
                "production_partner_api"
              ],
              "support_tier": "named_owner",
              "pricing_posture": "manual_review",
              "rest_routes": [
                {
                  "method": "GET",
                  "path": "/developers/current/projects",
                  "operation_id": "listDeveloperProjects",
                  "availability": "read_only_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/developers/current/projects/{id}",
                  "operation_id": "getDeveloperProject",
                  "availability": "read_only_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/developers/current/projects/{id}/units",
                  "operation_id": "listDeveloperProjectUnits",
                  "availability": "read_only_sandbox"
                },
                {
                  "method": "POST",
                  "path": "/developers/current/projects/{id}/showflat-requests",
                  "operation_id": "createDeveloperProjectShowflatRequest",
                  "availability": "available_sandbox"
                }
              ],
              "webhook_events": [
                "developer.showflat_requested"
              ],
              "status_components": [
                "developer_inventory_feeds",
                "webhook_delivery"
              ],
              "live_gate_ids": [
                "developer_inventory_routes_ready",
                "manual_live_review_approval"
              ],
              "required_evidence": [
                {
                  "id": "developer_inventory_routes_ready",
                  "label": "Developer inventory route family and feed freshness checks exist",
                  "owner": "developer-platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "manual_live_review_approval",
                  "label": "Live developer inventory access approved",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                }
              ],
              "ai_agent_policy": {
                "readable": true,
                "mcp_tool_name": null,
                "mutating_tools": "human_approved_only",
                "human_approval_required": true,
                "data_sensitivity": "partner",
                "tool_contract": "REST/OpenAPI only; SDK, CLI, and MCP must not bypass platform API routes"
              },
              "docs": [
                "docs/api/PLATFORM_API.md",
                "docs/features/platform/API_PRODUCT_CATALOG_SPEC.md"
              ],
              "blocked_claims": [
                "sandbox inventory does not publish live developer stock",
                "showflat request creation requires idempotency and explicit confirmation"
              ]
            },
            {
              "id": "bank_finance_referrals",
              "display_name": "Bank Finance Referrals",
              "summary": "Sandbox bank widget, product/rate catalog, eligibility, application, callback, staff, audit, and document-manifest APIs for bank partners.",
              "owner_team": "finance-platform",
              "target_builders": [
                "bank_partner",
                "ai_agent"
              ],
              "launch_stage": "pilot_only",
              "risk_tier": "regulated",
              "data_classification": "regulated",
              "available_environments": [
                "sandbox"
              ],
              "required_scopes": [
                "banks.frontends.read",
                "banks.products.read",
                "banks.rates.read",
                "banks.eligibility.read",
                "banks.applications.read",
                "banks.applications.write",
                "banks.applications.status.write",
                "banks.documents.read",
                "banks.callbacks.manage",
                "banks.staff.read",
                "banks.audit.read"
              ],
              "commercial_package_ids": [
                "enterprise_bank_api"
              ],
              "support_tier": "enterprise",
              "pricing_posture": "finance_approved_only",
              "rest_routes": [
                {
                  "method": "GET",
                  "path": "/banks/current/products",
                  "operation_id": "listBankProducts",
                  "availability": "pilot_only"
                },
                {
                  "method": "GET",
                  "path": "/banks/current/rates",
                  "operation_id": "listBankRates",
                  "availability": "pilot_only"
                },
                {
                  "method": "POST",
                  "path": "/banks/current/eligibility",
                  "operation_id": "checkBankEligibility",
                  "availability": "pilot_only"
                },
                {
                  "method": "POST",
                  "path": "/banks/current/applications",
                  "operation_id": "createBankApplication",
                  "availability": "pilot_only"
                },
                {
                  "method": "PATCH",
                  "path": "/banks/current/applications/{id}/status",
                  "operation_id": "updateBankApplicationStatus",
                  "availability": "pilot_only"
                }
              ],
              "webhook_events": [
                "bank.application_created",
                "bank.status_changed",
                "bank.callback_failed"
              ],
              "status_components": [
                "bank_frontend_widgets",
                "bank_callbacks",
                "document_handoff"
              ],
              "live_gate_ids": [
                "current_terms_acceptance",
                "sandbox_credential_issued",
                "support_owner_recorded",
                "business_authority_verified",
                "contract_signature_recorded",
                "commercial_terms_approved",
                "manual_live_review_approval",
                "status_component_ready",
                "bank_legal_review",
                "consent_service_ready",
                "document_handoff_ready"
              ],
              "required_evidence": [
                {
                  "id": "current_terms_acceptance",
                  "label": "Current platform terms accepted",
                  "owner": "legal",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "sandbox_credential_issued",
                  "label": "Sandbox credential issued and smoke-tested",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "support_owner_recorded",
                  "label": "Support owner recorded",
                  "owner": "support",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "business_authority_verified",
                  "label": "Business authority verified",
                  "owner": "compliance",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "contract_signature_recorded",
                  "label": "Contract signature recorded",
                  "owner": "legal",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "commercial_terms_approved",
                  "label": "Commercial terms approved",
                  "owner": "finance",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "manual_live_review_approval",
                  "label": "Manual live review approved",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "status_component_ready",
                  "label": "Status component and incident path ready",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "bank_legal_review",
                  "label": "Bank partner legal and regulatory review approved",
                  "owner": "legal",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "consent_service_ready",
                  "label": "Consent capture and audit contract approved",
                  "owner": "compliance",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "document_handoff_ready",
                  "label": "Document manifest and handoff redaction checks pass",
                  "owner": "finance-platform",
                  "required_for": [
                    "live_access"
                  ]
                }
              ],
              "ai_agent_policy": {
                "readable": true,
                "mcp_tool_name": null,
                "mutating_tools": "human_approved_only",
                "human_approval_required": true,
                "data_sensitivity": "regulated",
                "tool_contract": "REST/OpenAPI only; SDK, CLI, and MCP must not bypass platform API routes"
              },
              "docs": [
                "docs/api/PLATFORM_API.md",
                "docs/features/platform/BANK_PARTNER_FRONTENDS.md"
              ],
              "blocked_claims": [
                "bank APIs do not expose raw MyInfo, NRIC, bureau data, or bank statements",
                "sandbox product/rate catalogs are not borrower-specific offers",
                "live bank operations require enterprise package approval and consent evidence",
                "bank pilot surfaces remain information/referral and pre-approval focused in the current rollout phase",
                "bank routes do not imply product recommendation or live bank decisioning"
              ]
            },
            {
              "id": "conveyancing_matters",
              "display_name": "Conveyancing Matters",
              "summary": "Sandbox transaction and conveyancing matter reads with redacted document manifests and stamp-duty status evidence.",
              "owner_team": "transaction-platform",
              "target_builders": [
                "conveyancing_firm",
                "agent",
                "agency",
                "ai_agent"
              ],
              "launch_stage": "read_only_sandbox",
              "risk_tier": "regulated",
              "data_classification": "regulated",
              "available_environments": [
                "sandbox"
              ],
              "required_scopes": [
                "conveyancing.matters.read",
                "transactions.documents.read",
                "stamp_duty.status.read"
              ],
              "commercial_package_ids": [
                "pilot_partner_api",
                "production_partner_api"
              ],
              "support_tier": "named_owner",
              "pricing_posture": "manual_review",
              "rest_routes": [
                {
                  "method": "GET",
                  "path": "/conveyancing/matters",
                  "operation_id": "listConveyancingMatters",
                  "availability": "read_only_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/conveyancing/matters/{id}",
                  "operation_id": "getConveyancingMatter",
                  "availability": "read_only_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/conveyancing/matters/{id}/documents",
                  "operation_id": "listConveyancingMatterDocuments",
                  "availability": "read_only_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/conveyancing/matters/{id}/stamp-duty",
                  "operation_id": "getConveyancingMatterStampDuty",
                  "availability": "read_only_sandbox"
                }
              ],
              "webhook_events": [],
              "status_components": [
                "transaction_conveyancing_matter_service",
                "document_handoff"
              ],
              "live_gate_ids": [
                "current_terms_acceptance",
                "sandbox_credential_issued",
                "support_owner_recorded",
                "business_authority_verified",
                "contract_signature_recorded",
                "commercial_terms_approved",
                "manual_live_review_approval",
                "status_component_ready",
                "conveyancing_legal_review"
              ],
              "required_evidence": [
                {
                  "id": "current_terms_acceptance",
                  "label": "Current platform terms accepted",
                  "owner": "legal",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "sandbox_credential_issued",
                  "label": "Sandbox credential issued and smoke-tested",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "support_owner_recorded",
                  "label": "Support owner recorded",
                  "owner": "support",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "business_authority_verified",
                  "label": "Business authority verified",
                  "owner": "compliance",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "contract_signature_recorded",
                  "label": "Contract signature recorded",
                  "owner": "legal",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "commercial_terms_approved",
                  "label": "Commercial terms approved",
                  "owner": "finance",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "manual_live_review_approval",
                  "label": "Manual live review approved",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "status_component_ready",
                  "label": "Status component and incident path ready",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "conveyancing_legal_review",
                  "label": "Conveyancing firm legal and data-sharing review approved",
                  "owner": "legal",
                  "required_for": [
                    "live_access"
                  ]
                }
              ],
              "ai_agent_policy": {
                "readable": true,
                "mcp_tool_name": null,
                "mutating_tools": "none",
                "human_approval_required": false,
                "data_sensitivity": "regulated",
                "tool_contract": "REST/OpenAPI only; SDK, CLI, and MCP must not bypass platform API routes"
              },
              "docs": [
                "docs/api/PLATFORM_API.md",
                "docs/features/platform/CONVEYANCING_MARKETPLACE_SPEC.md"
              ],
              "blocked_claims": [
                "conveyancing reads do not provide legal or tax advice",
                "conveyancing pilot status remains private-first until monitored truth and wording gates pass",
                "client-money handling and law-firm trust-account flows remain out of scope by default",
                "document APIs expose redacted manifests only, not raw document contents"
              ]
            },
            {
              "id": "service_provider_payouts",
              "display_name": "Service Provider Payouts",
              "summary": "Sandbox service booking payment status, provider earnings, payout reads, payout detail, and payout simulation evidence.",
              "owner_team": "payments-platform",
              "target_builders": [
                "service_provider",
                "ai_agent",
                "platform_operator"
              ],
              "launch_stage": "available_sandbox",
              "risk_tier": "money_movement",
              "data_classification": "confidential",
              "available_environments": [
                "sandbox"
              ],
              "required_scopes": [
                "services.bookings.read",
                "services.payments.read",
                "services.payouts.read",
                "services.payouts.manage"
              ],
              "commercial_package_ids": [
                "pilot_partner_api",
                "production_partner_api"
              ],
              "support_tier": "production",
              "pricing_posture": "manual_review",
              "rest_routes": [
                {
                  "method": "GET",
                  "path": "/service-providers/current/earnings",
                  "operation_id": "getCurrentServiceProviderEarnings",
                  "availability": "available_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/services/bookings/{id}/payment-status",
                  "operation_id": "getServiceBookingPaymentStatus",
                  "availability": "available_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/service-provider-payouts",
                  "operation_id": "listServiceProviderPayouts",
                  "availability": "available_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/service-provider-payouts/{id}",
                  "operation_id": "getServiceProviderPayout",
                  "availability": "available_sandbox"
                },
                {
                  "method": "POST",
                  "path": "/sandbox/service-provider-payouts/simulate",
                  "operation_id": "simulateSandboxServiceProviderPayout",
                  "availability": "available_sandbox"
                }
              ],
              "webhook_events": [
                "service.payment_succeeded",
                "service.payment_failed",
                "provider.payable_created",
                "provider.payout_scheduled",
                "provider.payout_paid",
                "provider.payout_failed",
                "service.refund_created",
                "service.chargeback_opened"
              ],
              "status_components": [
                "usage_metering",
                "partner_billing",
                "webhook_delivery"
              ],
              "live_gate_ids": [
                "current_terms_acceptance",
                "sandbox_credential_issued",
                "support_owner_recorded",
                "business_authority_verified",
                "contract_signature_recorded",
                "commercial_terms_approved",
                "manual_live_review_approval",
                "status_component_ready",
                "payments_legal_review",
                "billing_reconciliation_ready"
              ],
              "required_evidence": [
                {
                  "id": "current_terms_acceptance",
                  "label": "Current platform terms accepted",
                  "owner": "legal",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "sandbox_credential_issued",
                  "label": "Sandbox credential issued and smoke-tested",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "support_owner_recorded",
                  "label": "Support owner recorded",
                  "owner": "support",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "business_authority_verified",
                  "label": "Business authority verified",
                  "owner": "compliance",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "contract_signature_recorded",
                  "label": "Contract signature recorded",
                  "owner": "legal",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "commercial_terms_approved",
                  "label": "Commercial terms approved",
                  "owner": "finance",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "manual_live_review_approval",
                  "label": "Manual live review approved",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "status_component_ready",
                  "label": "Status component and incident path ready",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "payments_legal_review",
                  "label": "Payment-services posture approved",
                  "owner": "legal",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "billing_reconciliation_ready",
                  "label": "Billing and payout reconciliation checks exist",
                  "owner": "finance",
                  "required_for": [
                    "live_access"
                  ]
                }
              ],
              "ai_agent_policy": {
                "readable": true,
                "mcp_tool_name": null,
                "mutating_tools": "human_approved_only",
                "human_approval_required": true,
                "data_sensitivity": "confidential",
                "tool_contract": "REST/OpenAPI only; SDK, CLI, and MCP must not bypass platform API routes"
              },
              "docs": [
                "docs/api/PLATFORM_API.md",
                "docs/features/platform/API_FIRST_PROVIDER_PAYMENTS_PRICING_SPEC.md"
              ],
              "blocked_claims": [
                "sandbox payout simulation does not move money",
                "API-first provider payment products do not inherit legacy marketplace commission by default",
                "live money movement requires reviewed payment and reconciliation gates"
              ]
            },
            {
              "id": "official_sources",
              "display_name": "Official Source Registry",
              "summary": "Credential-redacted official source registry, dataset, freshness, run, record search, attribution explanation, and fixture refresh APIs.",
              "owner_team": "data-platform",
              "target_builders": [
                "official_source_operator",
                "developer",
                "agent",
                "agency",
                "ai_agent"
              ],
              "launch_stage": "available_sandbox",
              "risk_tier": "medium",
              "data_classification": "partner",
              "available_environments": [
                "sandbox"
              ],
              "required_scopes": [
                "official_sources.read",
                "official_sources.datasets.read",
                "official_sources.freshness.read",
                "official_sources.audit.read",
                "official_sources.refresh"
              ],
              "commercial_package_ids": [
                "pilot_partner_api",
                "production_partner_api"
              ],
              "support_tier": "named_owner",
              "pricing_posture": "observe_only",
              "rest_routes": [
                {
                  "method": "GET",
                  "path": "/official-sources",
                  "operation_id": "listOfficialSources",
                  "availability": "available_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/official-sources/datasets",
                  "operation_id": "listOfficialSourceDatasets",
                  "availability": "available_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/official-sources/freshness",
                  "operation_id": "listOfficialSourceFreshness",
                  "availability": "available_sandbox"
                },
                {
                  "method": "POST",
                  "path": "/official-sources/runs/fixture-refresh",
                  "operation_id": "runOfficialSourceFixtureRefresh",
                  "availability": "available_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/official-sources/records/search",
                  "operation_id": "searchOfficialSourceRecords",
                  "availability": "available_sandbox"
                }
              ],
              "webhook_events": [],
              "status_components": [
                "official_source_connector_freshness"
              ],
              "live_gate_ids": [
                "official_source_freshness_ready",
                "manual_live_review_approval"
              ],
              "required_evidence": [
                {
                  "id": "official_source_freshness_ready",
                  "label": "Source freshness, attribution, and credential-redaction checks pass",
                  "owner": "data-platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "manual_live_review_approval",
                  "label": "Live official-source refresh approved",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                }
              ],
              "ai_agent_policy": {
                "readable": true,
                "mcp_tool_name": null,
                "mutating_tools": "human_approved_only",
                "human_approval_required": true,
                "data_sensitivity": "partner",
                "tool_contract": "REST/OpenAPI only; SDK, CLI, and MCP must not bypass platform API routes"
              },
              "docs": [
                "docs/api/PLATFORM_API.md",
                "docs/features/platform/API_PRODUCT_CATALOG_SPEC.md"
              ],
              "blocked_claims": [
                "fixture refresh does not call upstream agencies",
                "source reads never expose credential material"
              ]
            },
            {
              "id": "webhook_delivery",
              "display_name": "Webhook Delivery",
              "summary": "Webhook endpoint registration, redacted delivery evidence, replay requests, and sandbox test events.",
              "owner_team": "platform",
              "target_builders": [
                "service_provider",
                "agent",
                "agency",
                "bank_partner",
                "developer",
                "ai_agent"
              ],
              "launch_stage": "available_sandbox",
              "risk_tier": "high",
              "data_classification": "confidential",
              "available_environments": [
                "sandbox",
                "live"
              ],
              "required_scopes": [
                "webhooks.read",
                "webhooks.write"
              ],
              "commercial_package_ids": [
                "pilot_partner_api",
                "production_partner_api",
                "enterprise_bank_api"
              ],
              "support_tier": "named_owner",
              "pricing_posture": "observe_only",
              "rest_routes": [
                {
                  "method": "GET",
                  "path": "/webhooks/endpoints",
                  "operation_id": "listWebhookEndpoints",
                  "availability": "available_sandbox"
                },
                {
                  "method": "POST",
                  "path": "/webhooks/endpoints",
                  "operation_id": "createWebhookEndpoint",
                  "availability": "available_sandbox"
                },
                {
                  "method": "GET",
                  "path": "/webhooks/deliveries",
                  "operation_id": "listWebhookDeliveries",
                  "availability": "available_sandbox"
                },
                {
                  "method": "POST",
                  "path": "/webhooks/deliveries/{id}/replay",
                  "operation_id": "replayWebhookDelivery",
                  "availability": "available_sandbox"
                },
                {
                  "method": "POST",
                  "path": "/webhooks/test-events",
                  "operation_id": "createWebhookTestEvent",
                  "availability": "available_sandbox"
                }
              ],
              "webhook_events": [
                "listing.updated",
                "viewing.requested",
                "viewing.status_changed",
                "developer.showflat_requested",
                "bank.application_created",
                "bank.status_changed",
                "bank.callback_failed",
                "service.payment_succeeded",
                "service.payment_failed"
              ],
              "status_components": [
                "webhook_delivery"
              ],
              "live_gate_ids": [
                "webhook_delivery_ready",
                "manual_live_review_approval"
              ],
              "required_evidence": [
                {
                  "id": "webhook_delivery_ready",
                  "label": "Webhook enqueue, delivery, replay, and redaction checks pass",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                },
                {
                  "id": "manual_live_review_approval",
                  "label": "Live webhook delivery approved",
                  "owner": "platform",
                  "required_for": [
                    "live_access"
                  ]
                }
              ],
              "ai_agent_policy": {
                "readable": true,
                "mcp_tool_name": null,
                "mutating_tools": "human_approved_only",
                "human_approval_required": true,
                "data_sensitivity": "confidential",
                "tool_contract": "REST/OpenAPI only; SDK, CLI, and MCP must not bypass platform API routes"
              },
              "docs": [
                "docs/api/PLATFORM_API.md",
                "docs/features/platform/API_PRODUCT_CATALOG_SPEC.md"
              ],
              "blocked_claims": [
                "delivery reads do not expose payloads, response bodies, headers, endpoint URLs, or signing secrets",
                "webhook replay requires idempotency and explicit confirmation"
              ]
            }
          ],
          "counts": {
            "total": 17,
            "available_sandbox": 12,
            "available_live": 0,
            "read_only_sandbox": 4,
            "pilot_only": 1,
            "internal_only": 0,
            "deferred": 0,
            "mcp_visible": 0
          },
          "livemode": false,
          "request_id": "req_platform_products"
        }
      },
      "ProviderAiActionSandbox": {
        "summary": "Sandbox provider AI confirmed action",
        "value": {
          "ok": true,
          "action": "confirm_reply",
          "action_id": "sandbox_confirm_reply_lead_sandbox_clean_001",
          "status": "confirmed",
          "required_scope": "provider_conversations.write",
          "required_confirmation": "confirm_reply",
          "idempotency_required": true,
          "provider": {
            "id": "sandbox-provider-cleaning",
            "environment": "sandbox"
          },
          "side_effects": {
            "route_backed_audit": true,
            "direct_external_system_calls": false,
            "customer_visible_write": false,
            "provider_workspace_review_created": true,
            "website_draft_applied": false,
            "published": false,
            "appointment_confirmed": false,
            "booking_request_created": false,
            "connection_revoked": false
          },
          "continuation": {
            "url": "https://homejourney.sg/business/providers/sandbox-provider-cleaning/leads",
            "handoff_required": false,
            "reason": null
          },
          "safety": {
            "stale_external_scheduler_blocks_confirmation": false,
            "external_system_certified": false,
            "provider_grant_status": "active",
            "confirmation_recorded": true
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "service_provider",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_provider_ai_action"
        }
      },
      "ProviderAiGraphSandbox": {
        "summary": "Sandbox provider AI graph",
        "value": {
          "graph": {
            "provider": {
              "id": "sandbox-provider-cleaning",
              "display_name": "Sandbox Cleaning Co",
              "status": "active",
              "service_categories": [
                "home_cleaning",
                "move_in_cleaning"
              ],
              "continuation_url": "https://homejourney.sg/business/providers/sandbox-provider-cleaning"
            },
            "capabilities": {
              "website_builder": "available_sandbox",
              "booking_scheduler": "available_sandbox",
              "lead_triage": "available_sandbox",
              "integration_health": "read_only_sandbox"
            },
            "catalog": {
              "summary": {
                "service_count": 3,
                "bookable_service_count": 2,
                "draft_service_count": 1,
                "last_catalog_update_at": "2026-06-20T04:00:00.000Z"
              },
              "services": [
                {
                  "id": "svc_home_cleaning_standard",
                  "name": "Standard home cleaning",
                  "status": "published",
                  "booking_mode": "request_to_book",
                  "price_summary": "From SGD 120",
                  "continuation_url": "https://homejourney.sg/business/providers/sandbox-provider-cleaning/services/svc_home_cleaning_standard"
                },
                {
                  "id": "svc_move_in_cleaning",
                  "name": "Move-in cleaning",
                  "status": "published",
                  "booking_mode": "instant",
                  "price_summary": "From SGD 180",
                  "continuation_url": "https://homejourney.sg/business/providers/sandbox-provider-cleaning/services/svc_move_in_cleaning"
                },
                {
                  "id": "svc_post_renovation_cleaning",
                  "name": "Post-renovation cleaning",
                  "status": "draft",
                  "booking_mode": "quote_required",
                  "price_summary": "Quote required",
                  "continuation_url": "https://homejourney.sg/business/providers/sandbox-provider-cleaning/services/svc_post_renovation_cleaning"
                }
              ]
            },
            "website": {
              "slug": "sandbox-cleaning-co",
              "publication_status": "published",
              "canonical_url": "https://homejourney.sg/b/sandbox-cleaning-co",
              "last_published_at": "2026-06-21T02:00:00.000Z",
              "continuation_url": "https://homejourney.sg/business/sites/sandbox-cleaning-co"
            },
            "leads": {
              "summary": {
                "open_count": 3,
                "needs_reply_count": 2,
                "high_urgency_count": 1,
                "last_lead_at": "2026-06-22T10:30:00.000Z"
              },
              "recent": [
                {
                  "id": "lead_sandbox_clean_001",
                  "status": "needs_reply",
                  "urgency": "high",
                  "source_channel": "provider_site",
                  "summary": "Move-in cleaning request for a 3-room HDB before handover.",
                  "suggested_next_step": "Offer two appointment windows and confirm property size.",
                  "continuation_url": "https://homejourney.sg/business/providers/sandbox-provider-cleaning/leads/lead_sandbox_clean_001"
                },
                {
                  "id": "lead_sandbox_clean_002",
                  "status": "qualified",
                  "urgency": "medium",
                  "source_channel": "mobile_app",
                  "summary": "Recurring cleaning inquiry with preferred weekday mornings.",
                  "suggested_next_step": "Send recurring package options.",
                  "continuation_url": "https://homejourney.sg/business/providers/sandbox-provider-cleaning/leads/lead_sandbox_clean_002"
                }
              ]
            },
            "bookings": {
              "summary": {
                "upcoming_count": 2,
                "pending_confirmation_count": 1,
                "stale_external_slots_count": 1,
                "next_booking_at": "2026-06-26T02:00:00.000Z"
              },
              "upcoming": [
                {
                  "id": "booking_sandbox_clean_001",
                  "service_id": "svc_home_cleaning_standard",
                  "status": "confirmed",
                  "scheduled_window": {
                    "date": "2026-06-26",
                    "starts_at": "10:00",
                    "ends_at": "12:00",
                    "timezone": "Asia/Singapore"
                  },
                  "continuation_url": "https://homejourney.sg/business/providers/sandbox-provider-cleaning/bookings/booking_sandbox_clean_001"
                },
                {
                  "id": "booking_sandbox_clean_002",
                  "service_id": "svc_move_in_cleaning",
                  "status": "pending_confirmation",
                  "scheduled_window": {
                    "date": "2026-06-28",
                    "starts_at": "14:00",
                    "ends_at": "17:00",
                    "timezone": "Asia/Singapore"
                  },
                  "continuation_url": "https://homejourney.sg/business/providers/sandbox-provider-cleaning/bookings/booking_sandbox_clean_002"
                }
              ]
            },
            "integrations": {
              "summary": {
                "connected_count": 2,
                "degraded_count": 1,
                "last_health_check_at": "2026-06-22T11:00:00.000Z"
              },
              "connections": [
                {
                  "id": "conn_google_calendar_sandbox",
                  "kind": "calendar",
                  "provider": "google_calendar",
                  "status": "connected",
                  "health": "healthy",
                  "granted_scopes": [
                    "provider_bookings.read"
                  ],
                  "freshness": {
                    "last_seen_at": "2026-06-22T11:00:00.000Z",
                    "next_check_at": "2026-06-22T12:00:00.000Z"
                  }
                },
                {
                  "id": "conn_external_scheduler_sandbox",
                  "kind": "scheduler",
                  "provider": "external_scheduler",
                  "status": "connected",
                  "health": "degraded",
                  "granted_scopes": [
                    "provider_bookings.read"
                  ],
                  "freshness": {
                    "last_seen_at": "2026-06-21T03:00:00.000Z",
                    "next_check_at": "2026-06-22T12:00:00.000Z"
                  }
                }
              ]
            },
            "freshness": {
              "graph_generated_at": "2026-06-22T11:15:00.000Z",
              "source_watermarks": {
                "catalog": "2026-06-20T04:00:00.000Z",
                "website": "2026-06-21T02:00:00.000Z",
                "leads": "2026-06-22T10:30:00.000Z",
                "bookings": "2026-06-22T09:45:00.000Z",
                "integrations": "2026-06-22T11:00:00.000Z"
              }
            },
            "public_safety": {
              "customer_pii_returned": false,
              "raw_messages_returned": false,
              "external_provider_tokens_returned": false,
              "booking_write_controls_returned": false,
              "direct_provider_system_calls": false
            }
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "granted_provider_ai_scopes": [
              "provider_workspace.read",
              "provider_leads.read",
              "provider_bookings.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_data_access": "blocked_until_provider_ai_grant",
            "private_customer_data": "requires_provider_install_grant",
            "sandbox_side_effects": "blocked"
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "service_provider",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_provider_ai"
        }
      },
      "ProviderExternalSyncHealthSandbox": {
        "summary": "Sandbox provider external sync health",
        "value": {
          "ok": true,
          "provider_id": "sandbox-provider-cleaning",
          "sync_health": {
            "scheduler": {
              "connection_id": "conn_external_scheduler_sandbox",
              "freshness_status": "stale",
              "certification_status": "review_required",
              "source_mode": "request_handoff",
              "source_authority": "request_handoff",
              "customer_promise": "request_handoff",
              "conflict_policy": "blocks_public_projection",
              "public_projection_blocked": true,
              "conflict_created": true,
              "revocation_fanout_required": false
            },
            "crm": {
              "connection_id": "conn_crm_sandbox",
              "freshness_status": "fresh",
              "certification_status": "certified",
              "source_mode": "external_write_certified",
              "source_authority": "external_certified",
              "customer_promise": "confirmed_allowed",
              "conflict_policy": "none",
              "public_projection_blocked": false,
              "conflict_created": false,
              "revocation_fanout_required": false
            }
          },
          "public_safety": {
            "stale_external_slot_confirmed": false,
            "direct_external_system_calls": false,
            "revocation_blocks_future_reads": true
          },
          "livemode": false,
          "request_id": "req_provider_sync_health"
        }
      },
      "ProviderIntegrationsDirectorySandbox": {
        "summary": "Provider integrations directory",
        "value": {
          "modules": [
            {
              "module_id": "agent",
              "label": "Agent",
              "workspace_root": "/console/o/[orgId]/agent",
              "directory_categories": [
                "crm",
                "scheduler_calendar",
                "accounting_invoicing",
                "website_storefront",
                "marketplace_channel",
                "document_ocr",
                "analytics",
                "communications",
                "ai_host",
                "sdk_cli_mcp_client",
                "webhook_receiver"
              ],
              "source_mode_default": "homejourney_source_of_truth",
              "sync_layer_blocked_until": [
                "signed_integration_contract",
                "field_ownership",
                "conflict_policy",
                "certification_status",
                "support_owner",
                "sandbox_proof",
                "rollback"
              ],
              "install_api_prerequisites_satisfied": true,
              "install_api_runtime_boundary": "runtime_app_install_routes_deferred_until_prerequisites_pass",
              "apps": [
                {
                  "app_id": "platform_app_webhook_bridge",
                  "owner": "platform_integrations",
                  "verticals": [
                    "agent",
                    "agency",
                    "business",
                    "mortgage",
                    "legal",
                    "developer",
                    "renovation"
                  ],
                  "categories": [
                    "automation",
                    "webhook"
                  ],
                  "required_scopes": [
                    "webhooks.read",
                    "webhooks.write"
                  ],
                  "data_categories": [
                    "workspace_summary",
                    "workflow_item"
                  ],
                  "credential_type": "webhook_secret_digest",
                  "credential_posture": "webhook_secret_digest_visible",
                  "webhook_event_count": 3,
                  "webhook_endpoint_posture": "sandbox_webhook_endpoint_visible",
                  "sync_mode": "webhook",
                  "certification_status": "sandbox_certified",
                  "install_eligibility": "operator_review",
                  "contract_lifecycle_state": "sandbox_installed",
                  "sync_health": "healthy",
                  "adapter_posture": "local_gate_ready_pending_release",
                  "cli_support_posture": "local_gate_ready_pending_release",
                  "mcp_support_posture": "local_gate_ready_pending_release",
                  "last_sync_at": null,
                  "last_error_at": null,
                  "action_availability": {
                    "install": "deferred_until_install_route",
                    "pause": "deferred_until_mutation_route",
                    "resume": "deferred_until_mutation_route",
                    "revoke": "deferred_until_mutation_route"
                  },
                  "revoke_action": "fanout_api_key_webhook_mcp_and_connected_app_grants",
                  "support_owner": "platform_integrations"
                },
                {
                  "app_id": "platform_app_calendar_scheduling_bridge",
                  "owner": "platform_integrations",
                  "verticals": [
                    "agent",
                    "agency",
                    "business",
                    "developer"
                  ],
                  "categories": [
                    "calendar",
                    "automation"
                  ],
                  "required_scopes": [
                    "viewings.read",
                    "viewings.write"
                  ],
                  "data_categories": [
                    "workflow_item",
                    "staff_identity"
                  ],
                  "credential_type": "oauth",
                  "credential_posture": "oauth_or_service_account_visible",
                  "webhook_event_count": 2,
                  "webhook_endpoint_posture": "sandbox_webhook_endpoint_visible",
                  "sync_mode": "write_with_confirmation",
                  "certification_status": "deferred",
                  "install_eligibility": "operator_review",
                  "contract_lifecycle_state": "deferred",
                  "sync_health": "deferred",
                  "adapter_posture": "deferred_adapter_state_visible",
                  "cli_support_posture": "local_gate_ready_pending_release",
                  "mcp_support_posture": "local_gate_ready_pending_release",
                  "last_sync_at": null,
                  "last_error_at": null,
                  "action_availability": {
                    "install": "deferred_until_install_route",
                    "pause": "deferred_until_mutation_route",
                    "resume": "deferred_until_mutation_route",
                    "revoke": "deferred_until_mutation_route"
                  },
                  "revoke_action": "fanout_api_key_webhook_mcp_and_connected_app_grants",
                  "support_owner": "platform_integrations"
                }
              ]
            },
            {
              "module_id": "agency",
              "label": "Agency",
              "workspace_root": "/console/o/[orgId]/agency",
              "directory_categories": [
                "crm",
                "scheduler_calendar",
                "accounting_invoicing",
                "website_storefront",
                "marketplace_channel",
                "document_ocr",
                "analytics",
                "communications",
                "ai_host",
                "sdk_cli_mcp_client",
                "webhook_receiver"
              ],
              "source_mode_default": "homejourney_source_of_truth",
              "sync_layer_blocked_until": [
                "signed_integration_contract",
                "field_ownership",
                "conflict_policy",
                "certification_status",
                "support_owner",
                "sandbox_proof",
                "rollback"
              ],
              "install_api_prerequisites_satisfied": true,
              "install_api_runtime_boundary": "runtime_app_install_routes_deferred_until_prerequisites_pass",
              "apps": [
                {
                  "app_id": "platform_app_webhook_bridge",
                  "owner": "platform_integrations",
                  "verticals": [
                    "agent",
                    "agency",
                    "business",
                    "mortgage",
                    "legal",
                    "developer",
                    "renovation"
                  ],
                  "categories": [
                    "automation",
                    "webhook"
                  ],
                  "required_scopes": [
                    "webhooks.read",
                    "webhooks.write"
                  ],
                  "data_categories": [
                    "workspace_summary",
                    "workflow_item"
                  ],
                  "credential_type": "webhook_secret_digest",
                  "credential_posture": "webhook_secret_digest_visible",
                  "webhook_event_count": 3,
                  "webhook_endpoint_posture": "sandbox_webhook_endpoint_visible",
                  "sync_mode": "webhook",
                  "certification_status": "sandbox_certified",
                  "install_eligibility": "operator_review",
                  "contract_lifecycle_state": "sandbox_installed",
                  "sync_health": "healthy",
                  "adapter_posture": "local_gate_ready_pending_release",
                  "cli_support_posture": "local_gate_ready_pending_release",
                  "mcp_support_posture": "local_gate_ready_pending_release",
                  "last_sync_at": null,
                  "last_error_at": null,
                  "action_availability": {
                    "install": "deferred_until_install_route",
                    "pause": "deferred_until_mutation_route",
                    "resume": "deferred_until_mutation_route",
                    "revoke": "deferred_until_mutation_route"
                  },
                  "revoke_action": "fanout_api_key_webhook_mcp_and_connected_app_grants",
                  "support_owner": "platform_integrations"
                },
                {
                  "app_id": "platform_app_calendar_scheduling_bridge",
                  "owner": "platform_integrations",
                  "verticals": [
                    "agent",
                    "agency",
                    "business",
                    "developer"
                  ],
                  "categories": [
                    "calendar",
                    "automation"
                  ],
                  "required_scopes": [
                    "viewings.read",
                    "viewings.write"
                  ],
                  "data_categories": [
                    "workflow_item",
                    "staff_identity"
                  ],
                  "credential_type": "oauth",
                  "credential_posture": "oauth_or_service_account_visible",
                  "webhook_event_count": 2,
                  "webhook_endpoint_posture": "sandbox_webhook_endpoint_visible",
                  "sync_mode": "write_with_confirmation",
                  "certification_status": "deferred",
                  "install_eligibility": "operator_review",
                  "contract_lifecycle_state": "deferred",
                  "sync_health": "deferred",
                  "adapter_posture": "deferred_adapter_state_visible",
                  "cli_support_posture": "local_gate_ready_pending_release",
                  "mcp_support_posture": "local_gate_ready_pending_release",
                  "last_sync_at": null,
                  "last_error_at": null,
                  "action_availability": {
                    "install": "deferred_until_install_route",
                    "pause": "deferred_until_mutation_route",
                    "resume": "deferred_until_mutation_route",
                    "revoke": "deferred_until_mutation_route"
                  },
                  "revoke_action": "fanout_api_key_webhook_mcp_and_connected_app_grants",
                  "support_owner": "platform_integrations"
                }
              ]
            },
            {
              "module_id": "business",
              "label": "Business",
              "workspace_root": "/console/o/[orgId]/business/overview",
              "directory_categories": [
                "crm",
                "scheduler_calendar",
                "accounting_invoicing",
                "website_storefront",
                "marketplace_channel",
                "document_ocr",
                "analytics",
                "communications",
                "ai_host",
                "sdk_cli_mcp_client",
                "webhook_receiver"
              ],
              "source_mode_default": "homejourney_source_of_truth",
              "sync_layer_blocked_until": [
                "signed_integration_contract",
                "field_ownership",
                "conflict_policy",
                "certification_status",
                "support_owner",
                "sandbox_proof",
                "rollback"
              ],
              "install_api_prerequisites_satisfied": true,
              "install_api_runtime_boundary": "runtime_app_install_routes_deferred_until_prerequisites_pass",
              "apps": [
                {
                  "app_id": "platform_app_webhook_bridge",
                  "owner": "platform_integrations",
                  "verticals": [
                    "agent",
                    "agency",
                    "business",
                    "mortgage",
                    "legal",
                    "developer",
                    "renovation"
                  ],
                  "categories": [
                    "automation",
                    "webhook"
                  ],
                  "required_scopes": [
                    "webhooks.read",
                    "webhooks.write"
                  ],
                  "data_categories": [
                    "workspace_summary",
                    "workflow_item"
                  ],
                  "credential_type": "webhook_secret_digest",
                  "credential_posture": "webhook_secret_digest_visible",
                  "webhook_event_count": 3,
                  "webhook_endpoint_posture": "sandbox_webhook_endpoint_visible",
                  "sync_mode": "webhook",
                  "certification_status": "sandbox_certified",
                  "install_eligibility": "operator_review",
                  "contract_lifecycle_state": "sandbox_installed",
                  "sync_health": "healthy",
                  "adapter_posture": "local_gate_ready_pending_release",
                  "cli_support_posture": "local_gate_ready_pending_release",
                  "mcp_support_posture": "local_gate_ready_pending_release",
                  "last_sync_at": null,
                  "last_error_at": null,
                  "action_availability": {
                    "install": "deferred_until_install_route",
                    "pause": "deferred_until_mutation_route",
                    "resume": "deferred_until_mutation_route",
                    "revoke": "deferred_until_mutation_route"
                  },
                  "revoke_action": "fanout_api_key_webhook_mcp_and_connected_app_grants",
                  "support_owner": "platform_integrations"
                },
                {
                  "app_id": "platform_app_calendar_scheduling_bridge",
                  "owner": "platform_integrations",
                  "verticals": [
                    "agent",
                    "agency",
                    "business",
                    "developer"
                  ],
                  "categories": [
                    "calendar",
                    "automation"
                  ],
                  "required_scopes": [
                    "viewings.read",
                    "viewings.write"
                  ],
                  "data_categories": [
                    "workflow_item",
                    "staff_identity"
                  ],
                  "credential_type": "oauth",
                  "credential_posture": "oauth_or_service_account_visible",
                  "webhook_event_count": 2,
                  "webhook_endpoint_posture": "sandbox_webhook_endpoint_visible",
                  "sync_mode": "write_with_confirmation",
                  "certification_status": "deferred",
                  "install_eligibility": "operator_review",
                  "contract_lifecycle_state": "deferred",
                  "sync_health": "deferred",
                  "adapter_posture": "deferred_adapter_state_visible",
                  "cli_support_posture": "local_gate_ready_pending_release",
                  "mcp_support_posture": "local_gate_ready_pending_release",
                  "last_sync_at": null,
                  "last_error_at": null,
                  "action_availability": {
                    "install": "deferred_until_install_route",
                    "pause": "deferred_until_mutation_route",
                    "resume": "deferred_until_mutation_route",
                    "revoke": "deferred_until_mutation_route"
                  },
                  "revoke_action": "fanout_api_key_webhook_mcp_and_connected_app_grants",
                  "support_owner": "platform_integrations"
                },
                {
                  "app_id": "platform_app_provider_ai_workspace_graph",
                  "owner": "platform_ai",
                  "verticals": [
                    "business"
                  ],
                  "categories": [
                    "ai_host",
                    "crm"
                  ],
                  "required_scopes": [
                    "provider_workspace.read"
                  ],
                  "data_categories": [
                    "workspace_summary",
                    "workflow_item",
                    "user_private"
                  ],
                  "credential_type": "managed_service_account",
                  "credential_posture": "oauth_or_service_account_visible",
                  "webhook_event_count": 1,
                  "webhook_endpoint_posture": "sandbox_webhook_endpoint_visible",
                  "sync_mode": "read_only",
                  "certification_status": "sandbox_certified",
                  "install_eligibility": "invite_only",
                  "contract_lifecycle_state": "sandbox_installed",
                  "sync_health": "healthy",
                  "adapter_posture": "local_gate_ready_pending_release",
                  "cli_support_posture": "local_gate_ready_pending_release",
                  "mcp_support_posture": "local_gate_ready_pending_release",
                  "last_sync_at": null,
                  "last_error_at": null,
                  "action_availability": {
                    "install": "deferred_until_install_route",
                    "pause": "deferred_until_mutation_route",
                    "resume": "deferred_until_mutation_route",
                    "revoke": "deferred_until_mutation_route"
                  },
                  "revoke_action": "fanout_api_key_webhook_mcp_and_connected_app_grants",
                  "support_owner": "platform_ai"
                },
                {
                  "app_id": "platform_app_provider_system_fixture_sync",
                  "owner": "platform_integrations",
                  "verticals": [
                    "business"
                  ],
                  "categories": [
                    "automation",
                    "crm"
                  ],
                  "required_scopes": [
                    "provider_integrations.sync"
                  ],
                  "data_categories": [
                    "workspace_summary"
                  ],
                  "credential_type": "api_key_digest",
                  "credential_posture": "redacted_api_key_digest_visible",
                  "webhook_event_count": 0,
                  "webhook_endpoint_posture": "webhook_endpoint_not_required",
                  "sync_mode": "write_with_confirmation",
                  "certification_status": "sandbox_certified",
                  "install_eligibility": "operator_review",
                  "contract_lifecycle_state": "sandbox_installed",
                  "sync_health": "healthy",
                  "adapter_posture": "local_gate_ready_pending_release",
                  "cli_support_posture": "local_gate_ready_pending_release",
                  "mcp_support_posture": "local_gate_ready_pending_release",
                  "last_sync_at": null,
                  "last_error_at": null,
                  "action_availability": {
                    "install": "deferred_until_install_route",
                    "pause": "deferred_until_mutation_route",
                    "resume": "deferred_until_mutation_route",
                    "revoke": "deferred_until_mutation_route"
                  },
                  "revoke_action": "fanout_api_key_webhook_mcp_and_connected_app_grants",
                  "support_owner": "platform_integrations"
                }
              ]
            },
            {
              "module_id": "mortgage",
              "label": "Mortgage",
              "workspace_root": "/console/o/[orgId]/mortgage",
              "directory_categories": [
                "crm",
                "scheduler_calendar",
                "accounting_invoicing",
                "website_storefront",
                "marketplace_channel",
                "document_ocr",
                "analytics",
                "communications",
                "ai_host",
                "sdk_cli_mcp_client",
                "webhook_receiver"
              ],
              "source_mode_default": "homejourney_source_of_truth",
              "sync_layer_blocked_until": [
                "signed_integration_contract",
                "field_ownership",
                "conflict_policy",
                "certification_status",
                "support_owner",
                "sandbox_proof",
                "rollback"
              ],
              "install_api_prerequisites_satisfied": true,
              "install_api_runtime_boundary": "runtime_app_install_routes_deferred_until_prerequisites_pass",
              "apps": [
                {
                  "app_id": "platform_app_webhook_bridge",
                  "owner": "platform_integrations",
                  "verticals": [
                    "agent",
                    "agency",
                    "business",
                    "mortgage",
                    "legal",
                    "developer",
                    "renovation"
                  ],
                  "categories": [
                    "automation",
                    "webhook"
                  ],
                  "required_scopes": [
                    "webhooks.read",
                    "webhooks.write"
                  ],
                  "data_categories": [
                    "workspace_summary",
                    "workflow_item"
                  ],
                  "credential_type": "webhook_secret_digest",
                  "credential_posture": "webhook_secret_digest_visible",
                  "webhook_event_count": 3,
                  "webhook_endpoint_posture": "sandbox_webhook_endpoint_visible",
                  "sync_mode": "webhook",
                  "certification_status": "sandbox_certified",
                  "install_eligibility": "operator_review",
                  "contract_lifecycle_state": "sandbox_installed",
                  "sync_health": "healthy",
                  "adapter_posture": "local_gate_ready_pending_release",
                  "cli_support_posture": "local_gate_ready_pending_release",
                  "mcp_support_posture": "local_gate_ready_pending_release",
                  "last_sync_at": null,
                  "last_error_at": null,
                  "action_availability": {
                    "install": "deferred_until_install_route",
                    "pause": "deferred_until_mutation_route",
                    "resume": "deferred_until_mutation_route",
                    "revoke": "deferred_until_mutation_route"
                  },
                  "revoke_action": "fanout_api_key_webhook_mcp_and_connected_app_grants",
                  "support_owner": "platform_integrations"
                },
                {
                  "app_id": "platform_app_matter_document_handoff",
                  "owner": "platform_transactions",
                  "verticals": [
                    "mortgage",
                    "legal"
                  ],
                  "categories": [
                    "documents"
                  ],
                  "required_scopes": [
                    "transactions.documents.read",
                    "transactions.documents.write"
                  ],
                  "data_categories": [
                    "documents",
                    "user_private"
                  ],
                  "credential_type": "oauth",
                  "credential_posture": "oauth_or_service_account_visible",
                  "webhook_event_count": 2,
                  "webhook_endpoint_posture": "sandbox_webhook_endpoint_visible",
                  "sync_mode": "write_with_confirmation",
                  "certification_status": "live_review",
                  "install_eligibility": "operator_review",
                  "contract_lifecycle_state": "live_review",
                  "sync_health": "review_required",
                  "adapter_posture": "local_gate_ready_pending_release",
                  "cli_support_posture": "local_gate_ready_pending_release",
                  "mcp_support_posture": "local_gate_ready_pending_release",
                  "last_sync_at": null,
                  "last_error_at": null,
                  "action_availability": {
                    "install": "deferred_until_install_route",
                    "pause": "deferred_until_mutation_route",
                    "resume": "deferred_until_mutation_route",
                    "revoke": "deferred_until_mutation_route"
                  },
                  "revoke_action": "fanout_api_key_webhook_mcp_and_connected_app_grants",
                  "support_owner": "platform_transactions"
                }
              ]
            },
            {
              "module_id": "legal",
              "label": "Legal",
              "workspace_root": "/console/o/[orgId]/legal",
              "directory_categories": [
                "crm",
                "scheduler_calendar",
                "accounting_invoicing",
                "website_storefront",
                "marketplace_channel",
                "document_ocr",
                "analytics",
                "communications",
                "ai_host",
                "sdk_cli_mcp_client",
                "webhook_receiver"
              ],
              "source_mode_default": "homejourney_source_of_truth",
              "sync_layer_blocked_until": [
                "signed_integration_contract",
                "field_ownership",
                "conflict_policy",
                "certification_status",
                "support_owner",
                "sandbox_proof",
                "rollback"
              ],
              "install_api_prerequisites_satisfied": true,
              "install_api_runtime_boundary": "runtime_app_install_routes_deferred_until_prerequisites_pass",
              "apps": [
                {
                  "app_id": "platform_app_webhook_bridge",
                  "owner": "platform_integrations",
                  "verticals": [
                    "agent",
                    "agency",
                    "business",
                    "mortgage",
                    "legal",
                    "developer",
                    "renovation"
                  ],
                  "categories": [
                    "automation",
                    "webhook"
                  ],
                  "required_scopes": [
                    "webhooks.read",
                    "webhooks.write"
                  ],
                  "data_categories": [
                    "workspace_summary",
                    "workflow_item"
                  ],
                  "credential_type": "webhook_secret_digest",
                  "credential_posture": "webhook_secret_digest_visible",
                  "webhook_event_count": 3,
                  "webhook_endpoint_posture": "sandbox_webhook_endpoint_visible",
                  "sync_mode": "webhook",
                  "certification_status": "sandbox_certified",
                  "install_eligibility": "operator_review",
                  "contract_lifecycle_state": "sandbox_installed",
                  "sync_health": "healthy",
                  "adapter_posture": "local_gate_ready_pending_release",
                  "cli_support_posture": "local_gate_ready_pending_release",
                  "mcp_support_posture": "local_gate_ready_pending_release",
                  "last_sync_at": null,
                  "last_error_at": null,
                  "action_availability": {
                    "install": "deferred_until_install_route",
                    "pause": "deferred_until_mutation_route",
                    "resume": "deferred_until_mutation_route",
                    "revoke": "deferred_until_mutation_route"
                  },
                  "revoke_action": "fanout_api_key_webhook_mcp_and_connected_app_grants",
                  "support_owner": "platform_integrations"
                },
                {
                  "app_id": "platform_app_matter_document_handoff",
                  "owner": "platform_transactions",
                  "verticals": [
                    "mortgage",
                    "legal"
                  ],
                  "categories": [
                    "documents"
                  ],
                  "required_scopes": [
                    "transactions.documents.read",
                    "transactions.documents.write"
                  ],
                  "data_categories": [
                    "documents",
                    "user_private"
                  ],
                  "credential_type": "oauth",
                  "credential_posture": "oauth_or_service_account_visible",
                  "webhook_event_count": 2,
                  "webhook_endpoint_posture": "sandbox_webhook_endpoint_visible",
                  "sync_mode": "write_with_confirmation",
                  "certification_status": "live_review",
                  "install_eligibility": "operator_review",
                  "contract_lifecycle_state": "live_review",
                  "sync_health": "review_required",
                  "adapter_posture": "local_gate_ready_pending_release",
                  "cli_support_posture": "local_gate_ready_pending_release",
                  "mcp_support_posture": "local_gate_ready_pending_release",
                  "last_sync_at": null,
                  "last_error_at": null,
                  "action_availability": {
                    "install": "deferred_until_install_route",
                    "pause": "deferred_until_mutation_route",
                    "resume": "deferred_until_mutation_route",
                    "revoke": "deferred_until_mutation_route"
                  },
                  "revoke_action": "fanout_api_key_webhook_mcp_and_connected_app_grants",
                  "support_owner": "platform_transactions"
                }
              ]
            },
            {
              "module_id": "developer",
              "label": "Developer",
              "workspace_root": "/console/o/[orgId]/developer",
              "directory_categories": [
                "crm",
                "scheduler_calendar",
                "accounting_invoicing",
                "website_storefront",
                "marketplace_channel",
                "document_ocr",
                "analytics",
                "communications",
                "ai_host",
                "sdk_cli_mcp_client",
                "webhook_receiver"
              ],
              "source_mode_default": "homejourney_source_of_truth",
              "sync_layer_blocked_until": [
                "signed_integration_contract",
                "field_ownership",
                "conflict_policy",
                "certification_status",
                "support_owner",
                "sandbox_proof",
                "rollback"
              ],
              "install_api_prerequisites_satisfied": true,
              "install_api_runtime_boundary": "runtime_app_install_routes_deferred_until_prerequisites_pass",
              "apps": [
                {
                  "app_id": "platform_app_webhook_bridge",
                  "owner": "platform_integrations",
                  "verticals": [
                    "agent",
                    "agency",
                    "business",
                    "mortgage",
                    "legal",
                    "developer",
                    "renovation"
                  ],
                  "categories": [
                    "automation",
                    "webhook"
                  ],
                  "required_scopes": [
                    "webhooks.read",
                    "webhooks.write"
                  ],
                  "data_categories": [
                    "workspace_summary",
                    "workflow_item"
                  ],
                  "credential_type": "webhook_secret_digest",
                  "credential_posture": "webhook_secret_digest_visible",
                  "webhook_event_count": 3,
                  "webhook_endpoint_posture": "sandbox_webhook_endpoint_visible",
                  "sync_mode": "webhook",
                  "certification_status": "sandbox_certified",
                  "install_eligibility": "operator_review",
                  "contract_lifecycle_state": "sandbox_installed",
                  "sync_health": "healthy",
                  "adapter_posture": "local_gate_ready_pending_release",
                  "cli_support_posture": "local_gate_ready_pending_release",
                  "mcp_support_posture": "local_gate_ready_pending_release",
                  "last_sync_at": null,
                  "last_error_at": null,
                  "action_availability": {
                    "install": "deferred_until_install_route",
                    "pause": "deferred_until_mutation_route",
                    "resume": "deferred_until_mutation_route",
                    "revoke": "deferred_until_mutation_route"
                  },
                  "revoke_action": "fanout_api_key_webhook_mcp_and_connected_app_grants",
                  "support_owner": "platform_integrations"
                },
                {
                  "app_id": "platform_app_calendar_scheduling_bridge",
                  "owner": "platform_integrations",
                  "verticals": [
                    "agent",
                    "agency",
                    "business",
                    "developer"
                  ],
                  "categories": [
                    "calendar",
                    "automation"
                  ],
                  "required_scopes": [
                    "viewings.read",
                    "viewings.write"
                  ],
                  "data_categories": [
                    "workflow_item",
                    "staff_identity"
                  ],
                  "credential_type": "oauth",
                  "credential_posture": "oauth_or_service_account_visible",
                  "webhook_event_count": 2,
                  "webhook_endpoint_posture": "sandbox_webhook_endpoint_visible",
                  "sync_mode": "write_with_confirmation",
                  "certification_status": "deferred",
                  "install_eligibility": "operator_review",
                  "contract_lifecycle_state": "deferred",
                  "sync_health": "deferred",
                  "adapter_posture": "deferred_adapter_state_visible",
                  "cli_support_posture": "local_gate_ready_pending_release",
                  "mcp_support_posture": "local_gate_ready_pending_release",
                  "last_sync_at": null,
                  "last_error_at": null,
                  "action_availability": {
                    "install": "deferred_until_install_route",
                    "pause": "deferred_until_mutation_route",
                    "resume": "deferred_until_mutation_route",
                    "revoke": "deferred_until_mutation_route"
                  },
                  "revoke_action": "fanout_api_key_webhook_mcp_and_connected_app_grants",
                  "support_owner": "platform_integrations"
                },
                {
                  "app_id": "platform_app_developer_inventory_feed",
                  "owner": "platform_developer",
                  "verticals": [
                    "developer"
                  ],
                  "categories": [
                    "official_source",
                    "automation"
                  ],
                  "required_scopes": [
                    "developers.inventory.read",
                    "developers.inventory.write"
                  ],
                  "data_categories": [
                    "workflow_item",
                    "documents"
                  ],
                  "credential_type": "api_key_digest",
                  "credential_posture": "redacted_api_key_digest_visible",
                  "webhook_event_count": 2,
                  "webhook_endpoint_posture": "sandbox_webhook_endpoint_visible",
                  "sync_mode": "batch_import",
                  "certification_status": "deferred",
                  "install_eligibility": "operator_review",
                  "contract_lifecycle_state": "deferred",
                  "sync_health": "deferred",
                  "adapter_posture": "deferred_adapter_state_visible",
                  "cli_support_posture": "local_gate_ready_pending_release",
                  "mcp_support_posture": "local_gate_ready_pending_release",
                  "last_sync_at": null,
                  "last_error_at": null,
                  "action_availability": {
                    "install": "deferred_until_install_route",
                    "pause": "deferred_until_mutation_route",
                    "resume": "deferred_until_mutation_route",
                    "revoke": "deferred_until_mutation_route"
                  },
                  "revoke_action": "fanout_api_key_webhook_mcp_and_connected_app_grants",
                  "support_owner": "customer_success_developer"
                }
              ]
            },
            {
              "module_id": "renovation",
              "label": "Renovation",
              "workspace_root": "/console/o/[orgId]/renovation",
              "directory_categories": [
                "crm",
                "scheduler_calendar",
                "accounting_invoicing",
                "website_storefront",
                "marketplace_channel",
                "document_ocr",
                "analytics",
                "communications",
                "ai_host",
                "sdk_cli_mcp_client",
                "webhook_receiver"
              ],
              "source_mode_default": "homejourney_source_of_truth",
              "sync_layer_blocked_until": [
                "signed_integration_contract",
                "field_ownership",
                "conflict_policy",
                "certification_status",
                "support_owner",
                "sandbox_proof",
                "rollback"
              ],
              "install_api_prerequisites_satisfied": true,
              "install_api_runtime_boundary": "runtime_app_install_routes_deferred_until_prerequisites_pass",
              "apps": [
                {
                  "app_id": "platform_app_webhook_bridge",
                  "owner": "platform_integrations",
                  "verticals": [
                    "agent",
                    "agency",
                    "business",
                    "mortgage",
                    "legal",
                    "developer",
                    "renovation"
                  ],
                  "categories": [
                    "automation",
                    "webhook"
                  ],
                  "required_scopes": [
                    "webhooks.read",
                    "webhooks.write"
                  ],
                  "data_categories": [
                    "workspace_summary",
                    "workflow_item"
                  ],
                  "credential_type": "webhook_secret_digest",
                  "credential_posture": "webhook_secret_digest_visible",
                  "webhook_event_count": 3,
                  "webhook_endpoint_posture": "sandbox_webhook_endpoint_visible",
                  "sync_mode": "webhook",
                  "certification_status": "sandbox_certified",
                  "install_eligibility": "operator_review",
                  "contract_lifecycle_state": "sandbox_installed",
                  "sync_health": "healthy",
                  "adapter_posture": "local_gate_ready_pending_release",
                  "cli_support_posture": "local_gate_ready_pending_release",
                  "mcp_support_posture": "local_gate_ready_pending_release",
                  "last_sync_at": null,
                  "last_error_at": null,
                  "action_availability": {
                    "install": "deferred_until_install_route",
                    "pause": "deferred_until_mutation_route",
                    "resume": "deferred_until_mutation_route",
                    "revoke": "deferred_until_mutation_route"
                  },
                  "revoke_action": "fanout_api_key_webhook_mcp_and_connected_app_grants",
                  "support_owner": "platform_integrations"
                }
              ]
            }
          ],
          "summary": {
            "total_modules": 7,
            "total_app_surfaces": 16,
            "unique_apps": 6,
            "sandbox_certified_surfaces": 9,
            "live_review_surfaces": 2,
            "deferred_surfaces": 5,
            "install_mutations": "deferred_until_install_routes",
            "source_contract": "vertical_apps_integration_surface"
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "required_scope": "provider_workspace.read",
            "granted_provider_scopes": [
              "provider_workspace.read",
              "provider_integrations.manage"
            ],
            "actor_model": "api_key_automation_client",
            "data_access": "contract_metadata_only",
            "mutation_access": "install_pause_resume_revoke_deferred"
          },
          "public_safety": {
            "raw_credentials_returned": false,
            "oauth_tokens_returned": false,
            "webhook_secrets_returned": false,
            "customer_pii_returned": false,
            "raw_sync_payloads_returned": false,
            "direct_external_system_calls": false,
            "install_or_revocation_mutations_enabled": false
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "service_provider",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_provider_integrations"
        }
      },
      "ProviderIntegrationInstallGateSandbox": {
        "summary": "Provider integration install gate",
        "value": {
          "app": {
            "app_id": "platform_app_provider_ai_workspace_graph",
            "owner": "platform_ai",
            "verticals": [
              "business"
            ],
            "categories": [
              "ai_host",
              "crm"
            ],
            "required_scopes": [
              "provider_workspace.read"
            ],
            "data_categories": [
              "workspace_summary",
              "workflow_item",
              "user_private"
            ],
            "credential_type": "managed_service_account",
            "sync_mode": "read_only",
            "certification_status": "sandbox_certified",
            "install_eligibility": "invite_only",
            "revocation_behavior": [
              "connected_app_installs",
              "ai_host_grants"
            ],
            "support_owner": "platform_ai"
          },
          "modules": [
            {
              "module_id": "business",
              "label": "Business",
              "workspace_root": "/console/o/[orgId]/business/overview",
              "lifecycle_state": "sandbox_installed",
              "sync_health": "healthy",
              "adapter_posture": "local_gate_ready_pending_release",
              "support_owner": "platform_ai"
            }
          ],
          "gate": {
            "action": "install_consent",
            "allowed": false,
            "decision": "closed_until_reviewed_runtime_route",
            "reason": "install_route_deferred_until_reviewed_consent_mutation",
            "required_scope": "provider_integrations.manage",
            "route_mode": "read_only_gate_no_side_effects",
            "source_contract": "vertical_apps_integration_surface",
            "runtime_boundary": "runtime_app_install_routes_deferred_until_prerequisites_pass",
            "satisfied_prerequisite_ids": [
              "auth",
              "rate_limits",
              "validation",
              "scoped_credentials_or_oauth",
              "consent_copy",
              "audit",
              "redaction",
              "revocation",
              "negative_tests"
            ],
            "missing_prerequisite_ids": [],
            "next_action": "Ship a reviewed install mutation route with consent capture and idempotency storage."
          },
          "consent": {
            "consent_required": true,
            "consent_text_version": "connected_app_install_consent_v1",
            "consent_subject": "workspace_connected_app_install",
            "required_acknowledgements": [
              "grants_only_listed_scopes",
              "credentials_are_digest_or_oauth_only",
              "revocation_fanout_required_before_live"
            ],
            "data_categories": [
              "workspace_summary",
              "workflow_item",
              "user_private"
            ],
            "scopes": [
              "provider_workspace.read"
            ]
          },
          "revocation": {
            "revoke_supported": true,
            "terminal_state": "revoked",
            "fanout_targets": [
              "connected_app_installs",
              "ai_host_grants"
            ],
            "future_reads_blocked": true,
            "audit_event_required": true
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "required_scope": "provider_integrations.manage",
            "granted_provider_scopes": [
              "provider_workspace.read",
              "provider_integrations.manage"
            ],
            "actor_model": "api_key_automation_client"
          },
          "public_safety": {
            "raw_credentials_returned": false,
            "oauth_tokens_returned": false,
            "webhook_secrets_returned": false,
            "customer_pii_returned": false,
            "raw_sync_payloads_returned": false,
            "direct_external_system_calls": false,
            "install_mutation_enabled": false,
            "revocation_mutation_enabled": false,
            "pause_resume_mutation_enabled": false
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "service_provider",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_provider_install_gate"
        }
      },
      "ProviderIntegrationRevocationGateSandbox": {
        "summary": "Provider integration revocation gate",
        "value": {
          "app": {
            "app_id": "platform_app_provider_ai_workspace_graph",
            "owner": "platform_ai",
            "verticals": [
              "business"
            ],
            "categories": [
              "ai_host",
              "crm"
            ],
            "required_scopes": [
              "provider_workspace.read"
            ],
            "data_categories": [
              "workspace_summary",
              "workflow_item",
              "user_private"
            ],
            "credential_type": "managed_service_account",
            "sync_mode": "read_only",
            "certification_status": "sandbox_certified",
            "install_eligibility": "invite_only",
            "revocation_behavior": [
              "connected_app_installs",
              "ai_host_grants"
            ],
            "support_owner": "platform_ai"
          },
          "modules": [
            {
              "module_id": "business",
              "label": "Business",
              "workspace_root": "/console/o/[orgId]/business/overview",
              "lifecycle_state": "sandbox_installed",
              "sync_health": "healthy",
              "adapter_posture": "local_gate_ready_pending_release",
              "support_owner": "platform_ai"
            }
          ],
          "gate": {
            "action": "revocation",
            "allowed": false,
            "decision": "closed_until_reviewed_runtime_route",
            "reason": "revocation_route_deferred_until_reviewed_fanout_mutation",
            "required_scope": "provider_integrations.manage",
            "route_mode": "read_only_gate_no_side_effects",
            "source_contract": "vertical_apps_integration_surface",
            "runtime_boundary": "runtime_app_install_routes_deferred_until_prerequisites_pass",
            "satisfied_prerequisite_ids": [
              "auth",
              "rate_limits",
              "validation",
              "scoped_credentials_or_oauth",
              "consent_copy",
              "audit",
              "redaction",
              "revocation",
              "negative_tests"
            ],
            "missing_prerequisite_ids": [],
            "next_action": "Ship a reviewed revoke mutation route with audited fan-out and terminal state storage."
          },
          "consent": {
            "consent_required": true,
            "consent_text_version": "connected_app_install_consent_v1",
            "consent_subject": "workspace_connected_app_install",
            "required_acknowledgements": [
              "grants_only_listed_scopes",
              "credentials_are_digest_or_oauth_only",
              "revocation_fanout_required_before_live"
            ],
            "data_categories": [
              "workspace_summary",
              "workflow_item",
              "user_private"
            ],
            "scopes": [
              "provider_workspace.read"
            ]
          },
          "revocation": {
            "revoke_supported": true,
            "terminal_state": "revoked",
            "fanout_targets": [
              "connected_app_installs",
              "ai_host_grants"
            ],
            "future_reads_blocked": true,
            "audit_event_required": true
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "required_scope": "provider_integrations.manage",
            "granted_provider_scopes": [
              "provider_workspace.read",
              "provider_integrations.manage"
            ],
            "actor_model": "api_key_automation_client"
          },
          "public_safety": {
            "raw_credentials_returned": false,
            "oauth_tokens_returned": false,
            "webhook_secrets_returned": false,
            "customer_pii_returned": false,
            "raw_sync_payloads_returned": false,
            "direct_external_system_calls": false,
            "install_mutation_enabled": false,
            "revocation_mutation_enabled": false,
            "pause_resume_mutation_enabled": false
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "service_provider",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_provider_revocation_gate"
        }
      },
      "PlatformRenovationProjectListSandbox": {
        "summary": "Sandbox Renovation project list",
        "value": {
          "projects": [
            {
              "id": "00000000-0000-4000-8000-000000000711",
              "project_slug": "first-renovation-project",
              "project_name": "First Renovation Project",
              "project_status": "active",
              "readiness_status": "sandbox_ready",
              "budget_band": null,
              "target_start_date": null,
              "target_completion_date": null,
              "first_workflow_completed": false,
              "redaction": {
                "margin_redacted": true,
                "supplier_pricing_redacted": true,
                "payment_state_redacted": true,
                "client_reference_returned": false,
                "site_reference_returned": false
              },
              "live_gates": {
                "live_actions_enabled": false,
                "live_request_ready": false,
                "live_approved": false
              },
              "version": 1,
              "updated_at": "2026-07-02T00:00:00.000Z"
            }
          ],
          "safety": {
            "service_role_only_tables": true,
            "partner_reads_exposed": false,
            "live_actions_exposed": false,
            "cost_fields_redacted": true,
            "supplier_pricing_redacted": true,
            "payment_state_redacted": true
          },
          "livemode": false,
          "request_id": "req_renovation_projects_001"
        }
      },
      "PlatformRenovationProjectCreatedSandbox": {
        "summary": "Sandbox Renovation project created",
        "value": {
          "project": {
            "id": "00000000-0000-4000-8000-000000000711",
            "project_slug": "first-renovation-project",
            "project_name": "First Renovation Project",
            "project_status": "active",
            "readiness_status": "sandbox_ready",
            "budget_band": null,
            "target_start_date": null,
            "target_completion_date": null,
            "first_workflow_completed": false,
            "redaction": {
              "margin_redacted": true,
              "supplier_pricing_redacted": true,
              "payment_state_redacted": true,
              "client_reference_returned": false,
              "site_reference_returned": false
            },
            "live_gates": {
              "live_actions_enabled": false,
              "live_request_ready": false,
              "live_approved": false
            },
            "version": 1,
            "updated_at": "2026-07-02T00:00:00.000Z"
          },
          "safety": {
            "service_role_only_tables": true,
            "partner_reads_exposed": false,
            "live_actions_exposed": false,
            "cost_fields_redacted": true,
            "supplier_pricing_redacted": true,
            "payment_state_redacted": true
          },
          "livemode": false,
          "request_id": "req_renovation_project_create_001",
          "idempotency_key_hash": "sha256:renovation_project_idempotency"
        }
      },
      "PlatformRenovationMilestoneCreatedSandbox": {
        "summary": "Sandbox Renovation milestone created",
        "value": {
          "milestone": {
            "id": "00000000-0000-4000-8000-000000000811",
            "project_id": "00000000-0000-4000-8000-000000000711",
            "milestone_key": "site:kickoff",
            "milestone_name": "Site kickoff",
            "milestone_status": "in_progress",
            "progress_percent": 0,
            "due_date": "2026-08-01",
            "completed_at": null,
            "blocked_reason": null,
            "client_visible": false,
            "role_visibility": "internal",
            "redaction": {
              "cost_impact_redacted": true,
              "supplier_price_redacted": true
            },
            "version": 1,
            "updated_at": "2026-07-02T00:05:00.000Z"
          },
          "safety": {
            "service_role_only_tables": true,
            "partner_reads_exposed": false,
            "live_actions_exposed": false,
            "cost_fields_redacted": true,
            "supplier_pricing_redacted": true,
            "payment_state_redacted": true
          },
          "livemode": false,
          "request_id": "req_renovation_milestone_create_001",
          "idempotency_key_hash": "sha256:renovation_milestone_create"
        }
      },
      "PlatformRenovationProgressSubmittedSandbox": {
        "summary": "Sandbox Renovation progress submitted",
        "value": {
          "milestone": {
            "id": "00000000-0000-4000-8000-000000000811",
            "project_id": "00000000-0000-4000-8000-000000000711",
            "milestone_key": "site:kickoff",
            "milestone_name": "Site kickoff",
            "milestone_status": "in_progress",
            "progress_percent": 25,
            "due_date": "2026-08-01",
            "completed_at": null,
            "blocked_reason": null,
            "client_visible": false,
            "role_visibility": "internal",
            "redaction": {
              "cost_impact_redacted": true,
              "supplier_price_redacted": true
            },
            "version": 2,
            "updated_at": "2026-07-02T00:05:00.000Z"
          },
          "safety": {
            "service_role_only_tables": true,
            "partner_reads_exposed": false,
            "live_actions_exposed": false,
            "cost_fields_redacted": true,
            "supplier_pricing_redacted": true,
            "payment_state_redacted": true
          },
          "livemode": false,
          "request_id": "req_renovation_progress_submit_001",
          "idempotency_key_hash": "sha256:renovation_progress_submit"
        }
      },
      "PlatformRenovationProjectActionPreparedSandbox": {
        "summary": "Sandbox Renovation review material prepared",
        "value": {
          "action": "prepare_variation_order_draft",
          "action_id": "renovation:prepare_variation_order_draft:00000000-0000-4000-8000-000000000711:req_renovation_prepare_001",
          "status": "prepared_for_review",
          "required_scope": "renovations.projects.write",
          "project": {
            "id": "00000000-0000-4000-8000-000000000711",
            "project_slug": "first-renovation-project",
            "project_name": "First Renovation Project",
            "project_status": "active",
            "readiness_status": "sandbox_ready",
            "budget_band": null,
            "target_start_date": null,
            "target_completion_date": null,
            "first_workflow_completed": false,
            "redaction": {
              "margin_redacted": true,
              "supplier_pricing_redacted": true,
              "payment_state_redacted": true,
              "client_reference_returned": false,
              "site_reference_returned": false
            },
            "live_gates": {
              "live_actions_enabled": false,
              "live_request_ready": false,
              "live_approved": false
            },
            "version": 1,
            "updated_at": "2026-07-02T00:00:00.000Z"
          },
          "prepared_output": {
            "kind": "variation_order_draft",
            "headline": "Sandbox variation-order draft prepared for project-manager review",
            "checklist": [
              "Describe the requested scope change and affected milestone",
              "Attach approved public-safe evidence references",
              "Obtain separate commercial review and explicit client approval"
            ],
            "exclusions": {
              "cost_amounts_included": false,
              "supplier_pricing_included": false,
              "client_approval_recorded": false
            }
          },
          "professional_review": {
            "required": true,
            "reviewer_role": "project_manager",
            "confirmation_available": false,
            "execution_available": false
          },
          "side_effects": {
            "project_mutated": false,
            "milestone_mutated": false,
            "variation_order_created": false,
            "warranty_request_submitted": false,
            "client_updated": false,
            "payment_state_changed": false,
            "external_calls_made": false,
            "sensitive_fields_exposed": false
          },
          "livemode": false,
          "request_id": "req_renovation_prepare_001",
          "idempotency_key_hash": "sha256:renovation_prepare"
        }
      },
      "PlatformRenovationProjectNotFoundProblem": {
        "summary": "Renovation project not found problem",
        "value": {
          "type": "https://platform-api.homejourney.sg/problems/renovation_project_not_found",
          "title": "Renovation project not found",
          "status": 404,
          "code": "renovation_project_not_found",
          "detail": "The Renovation project was not found for this platform environment.",
          "request_id": "req_renovation_project_not_found"
        }
      },
      "PlatformRenovationMilestoneNotFoundProblem": {
        "summary": "Renovation milestone not found problem",
        "value": {
          "type": "https://platform-api.homejourney.sg/problems/renovation_milestone_not_found",
          "title": "Renovation milestone not found",
          "status": 404,
          "code": "renovation_milestone_not_found",
          "detail": "The Renovation milestone was not found for this platform environment.",
          "request_id": "req_renovation_milestone_not_found"
        }
      },
      "PlatformRenovationMilestoneVersionConflictProblem": {
        "summary": "Renovation milestone version conflict problem",
        "value": {
          "type": "https://platform-api.homejourney.sg/problems/renovation_milestone_version_conflict",
          "title": "Renovation milestone version conflict",
          "status": 409,
          "code": "renovation_milestone_version_conflict",
          "detail": "The Renovation milestone version has changed. Reload the milestone and retry.",
          "request_id": "req_renovation_milestone_version_conflict"
        }
      },
      "SandboxFixtureCatalogSandbox": {
        "summary": "Sandbox fixture catalog",
        "value": {
          "catalog": {
            "baseline_version": "platform_sandbox.v1.2026_06_19",
            "reset_scope": "sandbox.reset",
            "fixture_count": 13,
            "supported_domains": [
              "all",
              "identity",
              "listings",
              "viewings",
              "agent_agency",
              "sites",
              "developer_inventory",
              "bank_frontends",
              "official_sources",
              "service_payments",
              "provider_os",
              "conveyancing",
              "consents",
              "webhooks"
            ],
            "reset_mode": "stateless_deterministic_fixture_reseed"
          },
          "fixtures": [
            {
              "fixture_id": "sandbox_fixture_listings",
              "fixture_domain": "listings",
              "label": "Listings and listing detail",
              "description": "Listings and listing detail deterministic sandbox fixture set.",
              "route_paths": [
                "GET /listings",
                "GET /listings/{id}"
              ],
              "required_scopes": [
                "listings.read"
              ],
              "resettable": true,
              "data_class": "public_safe",
              "live_side_effects_blocked": true,
              "pii_returned": false
            }
          ],
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "granted_sandbox_scopes": [
              "sandbox.reset"
            ],
            "actor_model": "api_key_automation_client",
            "live_data_access": "blocked",
            "sandbox_side_effects": "stateless_deterministic_fixtures"
          },
          "safety": {
            "production_credentials_used": false,
            "provider_calls_made": false,
            "live_data_mutated": false,
            "database_rows_deleted": false,
            "database_rows_inserted": false,
            "persistent_fixture_state_mutated": false,
            "webhook_deliveries_sent": false
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "service_provider",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "SandboxResetSandbox": {
        "summary": "Sandbox fixture reset",
        "value": {
          "reset": {
            "accepted": true,
            "reset_id": "sandbox_reset_listings_2026_06_19",
            "fixture_domain": "listings",
            "domains_reset": [
              "listings"
            ],
            "fixture_count": 1,
            "baseline_version": "platform_sandbox.v1.2026_06_19",
            "reset_mode": "stateless_deterministic_fixture_reseed",
            "completed_at": "2026-06-19T00:00:00.000Z"
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "granted_sandbox_scopes": [
              "sandbox.reset"
            ],
            "actor_model": "api_key_automation_client",
            "live_data_access": "blocked",
            "sandbox_side_effects": "stateless_deterministic_fixtures"
          },
          "side_effects": {
            "production_credentials_used": false,
            "provider_calls_made": false,
            "live_data_mutated": false,
            "database_rows_deleted": false,
            "database_rows_inserted": false,
            "persistent_fixture_state_mutated": false,
            "webhook_deliveries_sent": false,
            "idempotency_and_request_events_only": true
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "service_provider",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "ServiceBookingPaymentStatusSandbox": {
        "summary": "Sandbox service booking payment status",
        "value": {
          "payment_status": {
            "booking_id": "svc_booking_sandbox_clean_001",
            "provider_id": "sandbox-provider-cleaning",
            "provider_name": "Sandbox Cleaning Co",
            "service_type": "home_cleaning",
            "booking_status": "completed",
            "scheduled_date": "2026-04-20",
            "currency": "SGD",
            "payment": {
              "status": "paid",
              "method_type": "card",
              "invoice_status": "paid",
              "refund_status": "none",
              "refund_reference": null,
              "amount_breakdown": {
                "gross_booking_amount_cents": 18000,
                "platform_fee_cents": 844,
                "provider_payable_cents": 17156,
                "customer_paid_cents": 18000,
                "refunded_cents": 0,
                "reversal_cents": 0,
                "outstanding_cents": 0,
                "wallet_paid_cents": 0,
                "points_redeemed_cents": 0
              },
              "payout_eligibility": {
                "status": "included_in_payout",
                "payout_id": "payout_sandbox_2026_05_01",
                "settlement_eta": null,
                "reason": null
              }
            },
            "accounting_reference": "services_transactions:txn_sandbox_clean_001"
          },
          "ledger_sources": {
            "bookings_table": "services_bookings",
            "transactions_table": "services_transactions",
            "refunds_table": "services_booking_refunds",
            "payouts_table": "services_payouts",
            "payout_batch_source": "services_payouts.id",
            "client_side_calculation_used": false,
            "fee_schedule_id": "fee_schedule_transaction_only_2026_06",
            "pricing_model": "transaction_only",
            "platform_access_fee_basis_points": 0,
            "transaction_fee_rates": {
              "domestic_card": {
                "basis_points": 430,
                "fixed_fee_cents": 70
              },
              "paynow": {
                "basis_points": 170,
                "fixed_fee_cents": 10
              }
            },
            "marketplace_commission_basis_points": 0,
            "standard_payout_fee_cents": 0,
            "standard_payout_timing": "T+30_calendar_days_after_payable_accrual",
            "redaction_version": "service_booking_payment_status.v1"
          },
          "public_safety": {
            "customer_pii_returned": false,
            "card_details_returned": false,
            "card_fingerprint_returned": false,
            "stripe_secret_returned": false,
            "stripe_payment_intent_returned": false,
            "stripe_customer_id_returned": false,
            "bank_account_returned": false,
            "hidden_gateway_metadata_returned": false,
            "private_customer_notes_returned": false,
            "internal_fraud_signals_returned": false,
            "raw_processor_payload_returned": false,
            "service_role_identifier_returned": false
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "granted_service_payment_scopes": [
              "services.bookings.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_payment_identity": "deferred",
            "live_payout_execution": "admin_controlled",
            "sandbox_side_effects": "blocked"
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "service_provider",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "SandboxServiceProviderPayoutSimulationSandbox": {
        "summary": "Sandbox service-provider payout simulation",
        "value": {
          "simulation": {
            "scenario": "partial_refund_after_payout",
            "description": "Post-payout partial refund offset queued against a later payout batch.",
            "payout": {
              "id": "payout_sim_partial_refund_after_payout",
              "provider_id": "sandbox-provider-cleaning",
              "provider_name": "Sandbox Cleaning Co",
              "period": {
                "start_date": "2026-05-01",
                "end_date": "2026-05-15",
                "timezone": "Asia/Singapore"
              },
              "currency": "SGD",
              "status": "pending_approval",
              "gross_booking_amount_cents": 54000,
              "platform_fee_cents": 2392,
              "net_payout_cents": 46608,
              "adjustment_cents": 0,
              "refund_reversal_cents": 5000,
              "payout_line_item_count": 2,
              "paid_at": null,
              "settlement_eta": "2026-06-14",
              "failure_reason": null,
              "next_action": "operator_review_required",
              "accounting_reference": "services_payouts:payout_sim_partial_refund_after_payout"
            },
            "line_items": [
              {
                "id": "payout_item_sim_partial_refund_after_payout_001",
                "payout_id": "payout_sim_partial_refund_after_payout",
                "source_type": "booking_payable",
                "source_booking_reference": "svc_booking_sandbox_partial_refund_after_payout_001",
                "description": "Sandbox completed service payable",
                "gross_booking_amount_cents": 54000,
                "platform_fee_cents": 2392,
                "net_amount_cents": 51608,
                "adjustment_cents": 0,
                "refund_reversal_cents": 0,
                "ledger_account_code": "PROVIDER_ACCRUAL",
                "accounting_reference": "services_transactions:txn_sim_partial_refund_after_payout_001"
              },
              {
                "id": "payout_item_sim_partial_refund_after_payout_offset",
                "payout_id": "payout_sim_partial_refund_after_payout",
                "source_type": "refund_reversal",
                "source_booking_reference": "svc_booking_sandbox_partial_refund_after_payout_refund",
                "description": "Post-payout partial refund offset",
                "gross_booking_amount_cents": 0,
                "platform_fee_cents": 0,
                "net_amount_cents": -5000,
                "adjustment_cents": 0,
                "refund_reversal_cents": 5000,
                "ledger_account_code": "PROVIDER_OFFSET",
                "accounting_reference": "services_transactions:txn_sim_partial_refund_after_payout_offset"
              }
            ],
            "provider_setup": {
              "connect_account_status": "verified",
              "bank_status": "verified",
              "payouts_enabled": true,
              "next_action": "none"
            }
          },
          "ledger_sources": {
            "payouts_table": "services_payouts",
            "transactions_table": "services_transactions",
            "refunds_table": "services_booking_refunds",
            "payout_batch_source": "services_payouts.id",
            "payout_line_item_source": "services_transactions.payout_id",
            "simulation_source": "deterministic_sandbox_fixture",
            "client_side_calculation_used": false,
            "fee_schedule_id": "fee_schedule_transaction_only_2026_06",
            "pricing_model": "transaction_only",
            "platform_access_fee_basis_points": 0,
            "transaction_fee_rates": {
              "domestic_card": {
                "basis_points": 430,
                "fixed_fee_cents": 70
              },
              "paynow": {
                "basis_points": 170,
                "fixed_fee_cents": 10
              }
            },
            "marketplace_commission_basis_points": 0,
            "standard_payout_fee_cents": 0,
            "standard_payout_timing": "T+30_calendar_days_after_payable_accrual",
            "redaction_version": "service_provider_payout_simulation.v1"
          },
          "public_safety": {
            "customer_pii_returned": false,
            "card_details_returned": false,
            "stripe_secret_returned": false,
            "bank_account_returned": false,
            "raw_processor_payload_returned": false,
            "service_role_identifier_returned": false,
            "raw_provider_bank_documents_returned": false
          },
          "side_effects": {
            "real_stripe_charges_created": false,
            "real_stripe_transfers_created": false,
            "real_stripe_payouts_created": false,
            "xero_journals_created": false,
            "payout_jobs_enqueued": false,
            "payout_records_created": false,
            "settlement_records_mutated": false,
            "fixture_state_mutated": false,
            "idempotency_and_request_events_only": true
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "granted_service_payment_scopes": [
              "services.payouts.manage"
            ],
            "actor_model": "api_key_automation_client",
            "live_payment_identity": "deferred",
            "live_payout_execution": "admin_controlled",
            "sandbox_side_effects": "blocked"
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "service_provider",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "CurrentServiceProviderEarningsSandbox": {
        "summary": "Sandbox service-provider earnings summary",
        "value": {
          "earnings": {
            "provider_id": "sandbox-provider-cleaning",
            "provider_name": "Sandbox Cleaning Co",
            "period": {
              "start_date": "2026-05-01",
              "end_date": "2026-05-31",
              "timezone": "Asia/Singapore"
            },
            "currency": "SGD",
            "totals": {
              "gross_booking_amount_cents": 128000,
              "platform_fee_cents": 6064,
              "net_payable_cents": 121936,
              "pending_payout_cents": 68624,
              "paid_payout_cents": 53312,
              "held_amount_cents": 0,
              "adjustment_cents": 0,
              "refund_reversal_cents": 0
            },
            "booking_summary": {
              "completed_bookings": 8,
              "pending_completion_bookings": 2,
              "failed_payments": 1,
              "refunded_bookings": 1
            },
            "payout_summary": {
              "next_payout_status": "ready_for_payout",
              "next_payout_eta": "2026-06-14",
              "last_payout_reference": "payout_sandbox_2026_05_01",
              "failed_payouts": 1
            },
            "ledger_sources": {
              "transactions_table": "services_transactions",
              "payouts_table": "services_payouts",
              "payout_batch_source": "services_payouts.id",
              "refunds_table": "services_booking_refunds",
              "client_side_calculation_used": false,
              "fee_schedule_id": "fee_schedule_transaction_only_2026_06",
              "pricing_model": "transaction_only",
              "platform_access_fee_basis_points": 0,
              "transaction_fee_rates": {
                "domestic_card": {
                  "basis_points": 430,
                  "fixed_fee_cents": 70
                },
                "paynow": {
                  "basis_points": 170,
                  "fixed_fee_cents": 10
                }
              },
              "marketplace_commission_basis_points": 0,
              "standard_payout_fee_cents": 0,
              "standard_payout_timing": "T+30_calendar_days_after_payable_accrual"
            },
            "public_safety": {
              "customer_pii_returned": false,
              "card_details_returned": false,
              "stripe_secret_returned": false,
              "bank_account_returned": false,
              "raw_processor_payload_returned": false
            }
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "granted_service_payment_scopes": [
              "services.payments.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_payment_identity": "deferred",
            "live_payout_execution": "admin_controlled",
            "sandbox_side_effects": "blocked"
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "service_provider",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "ServiceProviderPayoutsSandbox": {
        "summary": "Sandbox service-provider payout statements",
        "value": {
          "payouts": [
            {
              "id": "payout_sandbox_2026_05_01",
              "provider_id": "sandbox-provider-cleaning",
              "provider_name": "Sandbox Cleaning Co",
              "period": {
                "start_date": "2026-04-16",
                "end_date": "2026-04-30",
                "timezone": "Asia/Singapore"
              },
              "currency": "SGD",
              "status": "paid",
              "gross_booking_amount_cents": 56000,
              "platform_fee_cents": 2688,
              "net_payout_cents": 53312,
              "adjustment_cents": 0,
              "refund_reversal_cents": 0,
              "payout_line_item_count": 4,
              "paid_at": "2026-05-30T02:30:00.000Z",
              "settlement_eta": null,
              "failure_reason": null,
              "next_action": null,
              "accounting_reference": "services_payouts:payout_sandbox_2026_05_01"
            },
            {
              "id": "payout_sandbox_2026_05_15",
              "provider_id": "sandbox-provider-cleaning",
              "provider_name": "Sandbox Cleaning Co",
              "period": {
                "start_date": "2026-05-01",
                "end_date": "2026-05-15",
                "timezone": "Asia/Singapore"
              },
              "currency": "SGD",
              "status": "ready_for_payout",
              "gross_booking_amount_cents": 72000,
              "platform_fee_cents": 3376,
              "net_payout_cents": 68624,
              "adjustment_cents": 0,
              "refund_reversal_cents": 0,
              "payout_line_item_count": 4,
              "paid_at": null,
              "settlement_eta": "2026-06-14",
              "failure_reason": null,
              "next_action": "awaiting_admin_approval",
              "accounting_reference": "services_payouts:payout_sandbox_2026_05_15"
            },
            {
              "id": "payout_sandbox_2026_05_22_failed",
              "provider_id": "sandbox-provider-cleaning",
              "provider_name": "Sandbox Cleaning Co",
              "period": {
                "start_date": "2026-05-16",
                "end_date": "2026-05-22",
                "timezone": "Asia/Singapore"
              },
              "currency": "SGD",
              "status": "failed",
              "gross_booking_amount_cents": 32000,
              "platform_fee_cents": 1600,
              "net_payout_cents": 25400,
              "adjustment_cents": 0,
              "refund_reversal_cents": 5000,
              "payout_line_item_count": 2,
              "paid_at": null,
              "settlement_eta": null,
              "failure_reason": "provider_bank_returned",
              "next_action": "operator_review_required",
              "accounting_reference": "services_payouts:payout_sandbox_2026_05_22_failed"
            }
          ],
          "ledger_sources": {
            "payouts_table": "services_payouts",
            "transactions_table": "services_transactions",
            "refunds_table": "services_booking_refunds",
            "payout_batch_source": "services_payouts.id",
            "payout_line_item_source": "services_transactions.payout_id",
            "client_side_calculation_used": false,
            "fee_schedule_id": "fee_schedule_transaction_only_2026_06",
            "pricing_model": "transaction_only",
            "platform_access_fee_basis_points": 0,
            "transaction_fee_rates": {
              "domestic_card": {
                "basis_points": 430,
                "fixed_fee_cents": 70
              },
              "paynow": {
                "basis_points": 170,
                "fixed_fee_cents": 10
              }
            },
            "marketplace_commission_basis_points": 0,
            "standard_payout_fee_cents": 0,
            "standard_payout_timing": "T+30_calendar_days_after_payable_accrual",
            "redaction_version": "service_provider_payouts.v1"
          },
          "public_safety": {
            "customer_pii_returned": false,
            "card_details_returned": false,
            "stripe_secret_returned": false,
            "bank_account_returned": false,
            "raw_processor_payload_returned": false,
            "service_role_identifier_returned": false,
            "raw_provider_bank_documents_returned": false
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "granted_service_payment_scopes": [
              "services.payouts.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_payment_identity": "deferred",
            "live_payout_execution": "admin_controlled",
            "sandbox_side_effects": "blocked"
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "service_provider",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "ServiceProviderPayoutDetailSandbox": {
        "summary": "Sandbox service-provider payout statement detail",
        "value": {
          "payout": {
            "id": "payout_sandbox_2026_05_01",
            "provider_id": "sandbox-provider-cleaning",
            "provider_name": "Sandbox Cleaning Co",
            "period": {
              "start_date": "2026-04-16",
              "end_date": "2026-04-30",
              "timezone": "Asia/Singapore"
            },
            "currency": "SGD",
            "status": "paid",
            "gross_booking_amount_cents": 56000,
            "platform_fee_cents": 2688,
            "net_payout_cents": 53312,
            "adjustment_cents": 0,
            "refund_reversal_cents": 0,
            "payout_line_item_count": 4,
            "paid_at": "2026-05-30T02:30:00.000Z",
            "settlement_eta": null,
            "failure_reason": null,
            "next_action": null,
            "accounting_reference": "services_payouts:payout_sandbox_2026_05_01"
          },
          "line_items": [
            {
              "id": "payout_item_sandbox_2026_05_01_001",
              "payout_id": "payout_sandbox_2026_05_01",
              "source_type": "booking_payable",
              "source_booking_reference": "svc_booking_sandbox_clean_001",
              "description": "Completed home cleaning service payable",
              "gross_booking_amount_cents": 18000,
              "platform_fee_cents": 844,
              "net_amount_cents": 17156,
              "adjustment_cents": 0,
              "refund_reversal_cents": 0,
              "ledger_account_code": "PROVIDER_ACCRUAL",
              "accounting_reference": "services_transactions:txn_sandbox_clean_001"
            },
            {
              "id": "payout_item_sandbox_2026_05_01_002",
              "payout_id": "payout_sandbox_2026_05_01",
              "source_type": "booking_payable",
              "source_booking_reference": "svc_booking_sandbox_clean_002",
              "description": "Completed deep cleaning service payable",
              "gross_booking_amount_cents": 16000,
              "platform_fee_cents": 800,
              "net_amount_cents": 15200,
              "adjustment_cents": 0,
              "refund_reversal_cents": 0,
              "ledger_account_code": "PROVIDER_ACCRUAL",
              "accounting_reference": "services_transactions:txn_sandbox_clean_002"
            }
          ],
          "ledger_sources": {
            "payouts_table": "services_payouts",
            "transactions_table": "services_transactions",
            "refunds_table": "services_booking_refunds",
            "payout_batch_source": "services_payouts.id",
            "payout_line_item_source": "services_transactions.payout_id",
            "client_side_calculation_used": false,
            "fee_schedule_id": "fee_schedule_transaction_only_2026_06",
            "pricing_model": "transaction_only",
            "platform_access_fee_basis_points": 0,
            "transaction_fee_rates": {
              "domestic_card": {
                "basis_points": 430,
                "fixed_fee_cents": 70
              },
              "paynow": {
                "basis_points": 170,
                "fixed_fee_cents": 10
              }
            },
            "marketplace_commission_basis_points": 0,
            "standard_payout_fee_cents": 0,
            "standard_payout_timing": "T+30_calendar_days_after_payable_accrual",
            "redaction_version": "service_provider_payouts.v1"
          },
          "public_safety": {
            "customer_pii_returned": false,
            "card_details_returned": false,
            "stripe_secret_returned": false,
            "bank_account_returned": false,
            "raw_processor_payload_returned": false,
            "service_role_identifier_returned": false,
            "raw_provider_bank_documents_returned": false
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "granted_service_payment_scopes": [
              "services.payouts.read"
            ],
            "actor_model": "api_key_automation_client",
            "live_payment_identity": "deferred",
            "live_payout_execution": "admin_controlled",
            "sandbox_side_effects": "blocked"
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "service_provider",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "PlatformSiteListSandbox": {
        "value": {
          "sites": [
            {
              "id": "site_sandbox_agency_microsite",
              "sandbox_fixture_id": "agency_microsite",
              "site_slug": "agency-microsite",
              "display_name": "Sandbox Agency Microsite",
              "owner_type": "agency_organization",
              "template_id": "agency_microsite",
              "template_version": "sandbox-v1",
              "site_status": "published",
              "public_route_path": "/sandbox/sites/agency-microsite",
              "custom_domain_status": "deferred",
              "content_safety_status": "passed",
              "allowed_origins": [],
              "updated_at": "2026-05-16T00:00:00.000Z",
              "livemode": false
            }
          ],
          "pagination": {
            "limit": 1,
            "next_cursor": "1"
          },
          "livemode": false,
          "request_id": "req_sandbox_sites_001"
        }
      },
      "PlatformSiteDetailSandbox": {
        "value": {
          "site": {
            "id": "site_sandbox_agency_microsite",
            "sandbox_fixture_id": "agency_microsite",
            "site_slug": "agency-microsite",
            "display_name": "Sandbox Agency Microsite",
            "owner_type": "agency_organization",
            "template_id": "agency_microsite",
            "template_version": "sandbox-v1",
            "site_status": "published",
            "public_route_path": "/sandbox/sites/agency-microsite",
            "custom_domain_status": "deferred",
            "content_safety_status": "passed",
            "allowed_origins": [],
            "updated_at": "2026-05-16T00:00:00.000Z",
            "livemode": false,
            "publication": {
              "current_publication_id": "pub_site_sandbox_agency_microsite",
              "current_publication_status": "published",
              "hosted_route_path": "/sandbox/sites/agency-microsite",
              "custom_domain_status": "deferred",
              "rollback_supported": false
            },
            "safety": {
              "status": "passed",
              "partner_scripts": "blocked",
              "direct_html": "blocked",
              "hidden_form_destinations": "blocked",
              "third_party_pixels": "blocked",
              "secrets": "redacted"
            },
            "integrations": {
              "forms": "deferred",
              "listing_collection_widget": "deferred",
              "scheduling_widget": "deferred",
              "crm_delivery": "deferred"
            },
            "side_effects": {
              "email_sent": false,
              "sms_sent": false,
              "whatsapp_sent": false,
              "crm_write_performed": false,
              "calendar_write_performed": false,
              "payment_created": false,
              "distribution_mutated": false,
              "provider_call_performed": false
            }
          },
          "livemode": false,
          "request_id": "req_sandbox_site_001"
        }
      },
      "PlatformSitePagesSandbox": {
        "value": {
          "site": {
            "id": "site_sandbox_agency_microsite",
            "sandbox_fixture_id": "agency_microsite",
            "site_slug": "agency-microsite",
            "display_name": "Sandbox Agency Microsite",
            "owner_type": "agency_organization",
            "template_id": "agency_microsite",
            "template_version": "sandbox-v1",
            "site_status": "published",
            "public_route_path": "/sandbox/sites/agency-microsite",
            "custom_domain_status": "deferred",
            "content_safety_status": "passed",
            "allowed_origins": [],
            "updated_at": "2026-05-16T00:00:00.000Z",
            "livemode": false
          },
          "pages": [
            {
              "id": "page_sandbox_agency_home",
              "sandbox_fixture_id": "agency_home",
              "site_id": "site_sandbox_agency_microsite",
              "page_slug": "agency-home",
              "title": "Sandbox Agency Home",
              "page_type": "home",
              "publication_status": "published",
              "route_path": "/sandbox/sites/agency-microsite",
              "block_types": [
                "firm_profile",
                "team_roster",
                "listing_collection",
                "contact_form"
              ],
              "content_safety_status": "passed",
              "seo_indexing": "sandbox_noindex",
              "rendered_preview": "deferred",
              "side_effects": {
                "email_sent": false,
                "sms_sent": false,
                "whatsapp_sent": false,
                "crm_write_performed": false,
                "calendar_write_performed": false,
                "payment_created": false,
                "distribution_mutated": false,
                "provider_call_performed": false
              },
              "livemode": false,
              "updated_at": "2026-05-16T00:00:00.000Z"
            }
          ],
          "pagination": {
            "limit": 1,
            "next_cursor": "1"
          },
          "livemode": false,
          "request_id": "req_sandbox_site_pages_001"
        }
      },
      "PlatformSiteFormsSandbox": {
        "value": {
          "site": {
            "id": "site_sandbox_agency_microsite",
            "sandbox_fixture_id": "agency_microsite",
            "site_slug": "agency-microsite",
            "display_name": "Sandbox Agency Microsite",
            "owner_type": "agency_organization",
            "template_id": "agency_microsite",
            "template_version": "sandbox-v1",
            "site_status": "published",
            "public_route_path": "/sandbox/sites/agency-microsite",
            "custom_domain_status": "deferred",
            "content_safety_status": "passed",
            "allowed_origins": [],
            "updated_at": "2026-05-16T00:00:00.000Z",
            "livemode": false
          },
          "forms": [
            {
              "id": "form_sandbox_agency_contact",
              "sandbox_fixture_id": "agency_contact",
              "site_id": "site_sandbox_agency_microsite",
              "page_ids": [
                "page_sandbox_agency_home"
              ],
              "form_slug": "agency-contact",
              "title": "Sandbox Agency Contact Form",
              "form_type": "contact",
              "publication_status": "published",
              "consent_text_version": "sandbox-consent-v1",
              "recipient_routing": "redacted",
              "submission_storage": "deferred",
              "crm_delivery": "deferred",
              "content_safety_status": "passed",
              "side_effects": {
                "email_sent": false,
                "sms_sent": false,
                "whatsapp_sent": false,
                "crm_write_performed": false,
                "calendar_write_performed": false,
                "payment_created": false,
                "distribution_mutated": false,
                "provider_call_performed": false
              },
              "livemode": false,
              "updated_at": "2026-05-16T00:00:00.000Z"
            }
          ],
          "pagination": {
            "limit": 1,
            "next_cursor": "1"
          },
          "livemode": false,
          "request_id": "req_sandbox_site_forms_001"
        }
      },
      "PlatformSiteDomainsSandbox": {
        "value": {
          "site": {
            "id": "site_sandbox_agency_microsite",
            "sandbox_fixture_id": "agency_microsite",
            "site_slug": "agency-microsite",
            "display_name": "Sandbox Agency Microsite",
            "owner_type": "agency_organization",
            "template_id": "agency_microsite",
            "template_version": "sandbox-v1",
            "site_status": "published",
            "public_route_path": "/sandbox/sites/agency-microsite",
            "custom_domain_status": "deferred",
            "content_safety_status": "passed",
            "allowed_origins": [],
            "updated_at": "2026-05-16T00:00:00.000Z",
            "livemode": false
          },
          "domains": [
            {
              "id": "domain_sandbox_agency_blocked",
              "sandbox_fixture_id": "custom_domain_request_blocked",
              "site_id": "site_sandbox_agency_microsite",
              "requested_domain": "agent.example.sg",
              "domain_status": "blocked",
              "blocked_reason": "custom_domain_deferred_until_tofu_dns_cdn_certificate_rollback",
              "dns_management": "tofu_required",
              "certificate_status": "not_requested",
              "validation_status": "not_started",
              "rollback_status": "not_ready",
              "provider_call_performed": false,
              "livemode": false,
              "updated_at": "2026-05-16T00:00:00.000Z"
            }
          ],
          "custom_domain_setup": {
            "status": "deferred",
            "tofu_managed_dns_required": true,
            "certificate_validation_required": true,
            "rollback_smoke_required": true,
            "provider_call_performed": false
          },
          "livemode": false,
          "request_id": "req_sandbox_site_domains_001"
        }
      },
      "PlatformSiteNotFoundProblem": {
        "summary": "Partner site not found problem",
        "value": {
          "type": "https://platform-api.homejourney.sg/problems/site_not_found",
          "title": "Partner site not found",
          "status": 404,
          "code": "site_not_found",
          "detail": "The partner site was not found for this platform environment.",
          "request_id": "req_sandbox_site_404"
        }
      },
      "TransactionMatterListSandbox": {
        "value": {
          "matters": [
            {
              "matter_id": "transaction_sandbox_buyer_side_matter",
              "fixture_id": "buyer_side_conveyancing_matter",
              "primary_party_role": "buyer",
              "matter_state": "in_progress",
              "public_status_label": "In progress",
              "law_firm_assignment_present": true,
              "party_access_model_present": true,
              "document_manifest_count": 2,
              "stamp_duty_status": "pending",
              "sandbox_fixture_backed": true,
              "unsafe_fields_exposed": false
            }
          ],
          "access": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "granted_transaction_scopes": [
              "conveyancing.matters.read"
            ],
            "actor_model": "api_key_automation_client",
            "sandbox_fixture_mode": "read_only",
            "marketplace_orchestration_only": true,
            "advice_boundary_enforced": true,
            "client_money_handling_deferred": true,
            "private_pilot_status_posture": "private_first",
            "live_transaction_mutation": "deferred",
            "document_handoff_url_issuance": "deferred",
            "legal_or_tax_action_returned": false
          },
          "livemode": false,
          "request_id": "req_sandbox_transaction_matters"
        }
      },
      "TransactionMatterDetailSandbox": {
        "value": {
          "matter": {
            "matter_id": "transaction_sandbox_buyer_side_matter",
            "fixture_id": "buyer_side_conveyancing_matter",
            "primary_party_role": "buyer",
            "matter_state": "in_progress",
            "public_status_label": "In progress",
            "law_firm_assignment_present": true,
            "party_access_model_present": true,
            "document_manifest_count": 2,
            "stamp_duty_status": "pending",
            "sandbox_fixture_backed": true,
            "unsafe_fields_exposed": false,
            "documents": [
              {
                "document_id": "transaction_sandbox_bank_document_request",
                "fixture_id": "bank_document_request",
                "status": "requested",
                "classification": "regulated",
                "redacted_filename": "bank_document_request-redacted.pdf",
                "manifest_reference": "manifest:bank_document_request",
                "handoff_reference": "handoff:bank_document_request",
                "handoff_status": "requested",
                "redacted_manifest_only": true,
                "document_contents_returned": false,
                "hidden_path_returned": false,
                "permanent_link_returned": false,
                "private_notes_returned": false
              }
            ],
            "stamp_duty": {
              "stamp_duty_id": "transaction_sandbox_stamp_duty_pending",
              "fixture_id": "stamp_duty_pending",
              "status": "pending",
              "source_metadata_present": true,
              "coordination_metadata_only": true,
              "e_stamping_submitted": false,
              "legal_or_tax_action_returned": false,
              "platform_estimate_presented_as_final": false
            },
            "allowed_first_slice_actions": [
              "read_matter",
              "read_document_manifest",
              "read_stamp_duty_status"
            ],
            "blocked_first_slice_actions": [
              "legal_lodgement",
              "fund_release",
              "production_document_submission",
              "e_stamping_submission",
              "legal_or_tax_advice"
            ]
          },
          "access": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "granted_transaction_scopes": [
              "conveyancing.matters.read"
            ],
            "actor_model": "api_key_automation_client",
            "sandbox_fixture_mode": "read_only",
            "marketplace_orchestration_only": true,
            "advice_boundary_enforced": true,
            "client_money_handling_deferred": true,
            "private_pilot_status_posture": "private_first",
            "live_transaction_mutation": "deferred",
            "document_handoff_url_issuance": "deferred",
            "legal_or_tax_action_returned": false
          },
          "livemode": false,
          "request_id": "req_sandbox_transaction_matter_detail"
        }
      },
      "TransactionDocumentManifestSandbox": {
        "value": {
          "matter_id": "transaction_sandbox_buyer_side_matter",
          "documents": [
            {
              "document_id": "transaction_sandbox_bank_document_request",
              "fixture_id": "bank_document_request",
              "status": "requested",
              "classification": "regulated",
              "redacted_filename": "bank_document_request-redacted.pdf",
              "manifest_reference": "manifest:bank_document_request",
              "handoff_reference": "handoff:bank_document_request",
              "handoff_status": "requested",
              "redacted_manifest_only": true,
              "document_contents_returned": false,
              "hidden_path_returned": false,
              "permanent_link_returned": false,
              "private_notes_returned": false
            }
          ],
          "access": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "granted_transaction_scopes": [
              "transactions.documents.read"
            ],
            "actor_model": "api_key_automation_client",
            "sandbox_fixture_mode": "read_only",
            "marketplace_orchestration_only": true,
            "advice_boundary_enforced": true,
            "client_money_handling_deferred": true,
            "private_pilot_status_posture": "private_first",
            "live_transaction_mutation": "deferred",
            "document_handoff_url_issuance": "deferred",
            "legal_or_tax_action_returned": false
          },
          "livemode": false,
          "request_id": "req_sandbox_transaction_documents"
        }
      },
      "TransactionStampDutySandbox": {
        "value": {
          "matter_id": "transaction_sandbox_buyer_side_matter",
          "stamp_duty": {
            "stamp_duty_id": "transaction_sandbox_stamp_duty_pending",
            "fixture_id": "stamp_duty_pending",
            "status": "pending",
            "source_metadata_present": true,
            "coordination_metadata_only": true,
            "e_stamping_submitted": false,
            "legal_or_tax_action_returned": false,
            "platform_estimate_presented_as_final": false
          },
          "access": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "granted_transaction_scopes": [
              "stamp_duty.status.read"
            ],
            "actor_model": "api_key_automation_client",
            "sandbox_fixture_mode": "read_only",
            "marketplace_orchestration_only": true,
            "advice_boundary_enforced": true,
            "client_money_handling_deferred": true,
            "private_pilot_status_posture": "private_first",
            "live_transaction_mutation": "deferred",
            "document_handoff_url_issuance": "deferred",
            "legal_or_tax_action_returned": false
          },
          "livemode": false,
          "request_id": "req_sandbox_stamp_duty"
        }
      },
      "TransactionConveyancingPrepareSandbox": {
        "value": {
          "ok": true,
          "action": "prepare_document_request_checklist",
          "action_id": "conveyancing:prepare_document_request_checklist:transaction_sandbox_buyer_side_matter:legalprepare001",
          "status": "prepared",
          "required_scope": "conveyancing.matters.write",
          "idempotency_required": true,
          "matter": {
            "matter_id": "transaction_sandbox_buyer_side_matter",
            "fixture_id": "buyer_side_conveyancing_matter",
            "matter_state": "in_progress",
            "source": "sandbox_fixture"
          },
          "prepared_output": {
            "kind": "document_request_checklist",
            "headline": "Sandbox document-request checklist prepared for responsible-lawyer review",
            "checklist_items": [
              {
                "category": "matter_authority",
                "review_state": "responsible_lawyer_review_required",
                "source_documents_included": false
              },
              {
                "category": "transaction_documents",
                "review_state": "responsible_lawyer_review_required",
                "source_documents_included": false
              },
              {
                "category": "stamp_duty_coordination",
                "review_state": "responsible_lawyer_review_required",
                "source_documents_included": false
              }
            ]
          },
          "professional_review": {
            "required": true,
            "reviewer_role": "responsible_lawyer",
            "confirmation_route_exposed": false,
            "execution_route_exposed": false
          },
          "side_effects": {
            "matter_mutated": false,
            "document_submitted": false,
            "e_stamping_submitted": false,
            "funds_released": false,
            "client_money_handled": false,
            "external_system_calls": false,
            "sensitive_fields_exposed": false,
            "legal_or_tax_action_returned": false
          },
          "livemode": false,
          "request_id": "req_sandbox_conveyancing_prepare"
        }
      },
      "TransactionMatterNotFoundProblem": {
        "value": {
          "type": "https://platform-api.homejourney.sg/problems/transaction_matter_not_found",
          "title": "Transaction matter not found",
          "status": 404,
          "code": "transaction_matter_not_found",
          "detail": "The transaction matter was not found for this platform environment.",
          "request_id": "req_sandbox_transaction_missing"
        }
      },
      "UsageSummarySandbox": {
        "summary": "Read-only customer-visible usage summaries for every launch vertical.",
        "value": {
          "summaries": [
            {
              "module_id": "agent",
              "plan_state": "restricted_workspace_observe_only",
              "billing_owner": "billing_operations_agent",
              "invoice_contact": "billing+agent@homejourney.sg",
              "billing_period": "2026-07",
              "usage_unit": "lead_submission",
              "included_units": 10,
              "used_units": 14,
              "billable_units": 4,
              "quota_state": "warning",
              "invoice_state": "review_required",
              "overage_review_state": "manual_review_required",
              "automatic_overage_enforcement_allowed": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "usage_summary_test_id": "platform-agent-usage-summary",
              "label": "Agent",
              "workspace_root": "/console/o/[orgId]/agent",
              "usage_event_id": "evt-agent-billing-usage-summary",
              "usage_event_status": "succeeded",
              "usage_event_surface": "admin_action",
              "usage_event_route_or_tool": "/console/o/[orgId]/agent",
              "usage_event_quantity": 14,
              "source_event_count": 1,
              "reconciliation_status": "approved",
              "billing_exclusion_reason": null,
              "observe_only_mode": "observe_only",
              "allowed_actions": [
                "usage_event_capture",
                "usage_rollup_generation",
                "quota_warning",
                "draft_invoice_generation",
                "admin_reconciliation_review"
              ],
              "blocked_actions": [
                "automatic_overage_billing",
                "quota_enforcement",
                "invoice_sending",
                "payment_collection",
                "credential_suspension",
                "scope_downgrade"
              ],
              "raw_usage_event_payload_visible": false,
              "raw_payment_payload_visible": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep the billing/usage contract in the launch-readiness suite while runtime billing routes remain observe-only and finance-reviewed."
            },
            {
              "module_id": "agency",
              "plan_state": "restricted_workspace_observe_only",
              "billing_owner": "billing_operations_agency",
              "invoice_contact": "billing+agency@homejourney.sg",
              "billing_period": "2026-07",
              "usage_unit": "crm_delivery",
              "included_units": 10,
              "used_units": 14,
              "billable_units": 4,
              "quota_state": "warning",
              "invoice_state": "review_required",
              "overage_review_state": "manual_review_required",
              "automatic_overage_enforcement_allowed": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "usage_summary_test_id": "platform-agency-usage-summary",
              "label": "Agency",
              "workspace_root": "/console/o/[orgId]/agency",
              "usage_event_id": "evt-agency-billing-usage-summary",
              "usage_event_status": "succeeded",
              "usage_event_surface": "admin_action",
              "usage_event_route_or_tool": "/console/o/[orgId]/agency",
              "usage_event_quantity": 14,
              "source_event_count": 1,
              "reconciliation_status": "approved",
              "billing_exclusion_reason": null,
              "observe_only_mode": "observe_only",
              "allowed_actions": [
                "usage_event_capture",
                "usage_rollup_generation",
                "quota_warning",
                "draft_invoice_generation",
                "admin_reconciliation_review"
              ],
              "blocked_actions": [
                "automatic_overage_billing",
                "quota_enforcement",
                "invoice_sending",
                "payment_collection",
                "credential_suspension",
                "scope_downgrade"
              ],
              "raw_usage_event_payload_visible": false,
              "raw_payment_payload_visible": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep the billing/usage contract in the launch-readiness suite while runtime billing routes remain observe-only and finance-reviewed."
            },
            {
              "module_id": "business",
              "plan_state": "restricted_workspace_observe_only",
              "billing_owner": "billing_operations_business",
              "invoice_contact": "billing+business@homejourney.sg",
              "billing_period": "2026-07",
              "usage_unit": "marketplace_install",
              "included_units": 10,
              "used_units": 14,
              "billable_units": 4,
              "quota_state": "warning",
              "invoice_state": "review_required",
              "overage_review_state": "manual_review_required",
              "automatic_overage_enforcement_allowed": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "usage_summary_test_id": "platform-business-usage-summary",
              "label": "Business",
              "workspace_root": "/console/o/[orgId]/business/overview",
              "usage_event_id": "evt-business-billing-usage-summary",
              "usage_event_status": "succeeded",
              "usage_event_surface": "admin_action",
              "usage_event_route_or_tool": "/console/o/[orgId]/business/overview",
              "usage_event_quantity": 14,
              "source_event_count": 1,
              "reconciliation_status": "approved",
              "billing_exclusion_reason": null,
              "observe_only_mode": "observe_only",
              "allowed_actions": [
                "usage_event_capture",
                "usage_rollup_generation",
                "quota_warning",
                "draft_invoice_generation",
                "admin_reconciliation_review"
              ],
              "blocked_actions": [
                "automatic_overage_billing",
                "quota_enforcement",
                "invoice_sending",
                "payment_collection",
                "credential_suspension",
                "scope_downgrade"
              ],
              "raw_usage_event_payload_visible": false,
              "raw_payment_payload_visible": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep the billing/usage contract in the launch-readiness suite while runtime billing routes remain observe-only and finance-reviewed."
            },
            {
              "module_id": "mortgage",
              "plan_state": "restricted_workspace_observe_only",
              "billing_owner": "billing_operations_mortgage",
              "invoice_contact": "billing+mortgage@homejourney.sg",
              "billing_period": "2026-07",
              "usage_unit": "document_scan",
              "included_units": 10,
              "used_units": 14,
              "billable_units": 4,
              "quota_state": "warning",
              "invoice_state": "review_required",
              "overage_review_state": "manual_review_required",
              "automatic_overage_enforcement_allowed": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "usage_summary_test_id": "platform-mortgage-usage-summary",
              "label": "Mortgage",
              "workspace_root": "/console/o/[orgId]/mortgage",
              "usage_event_id": "evt-mortgage-billing-usage-summary",
              "usage_event_status": "succeeded",
              "usage_event_surface": "admin_action",
              "usage_event_route_or_tool": "/console/o/[orgId]/mortgage",
              "usage_event_quantity": 14,
              "source_event_count": 1,
              "reconciliation_status": "approved",
              "billing_exclusion_reason": null,
              "observe_only_mode": "observe_only",
              "allowed_actions": [
                "usage_event_capture",
                "usage_rollup_generation",
                "quota_warning",
                "draft_invoice_generation",
                "admin_reconciliation_review"
              ],
              "blocked_actions": [
                "automatic_overage_billing",
                "quota_enforcement",
                "invoice_sending",
                "payment_collection",
                "credential_suspension",
                "scope_downgrade"
              ],
              "raw_usage_event_payload_visible": false,
              "raw_payment_payload_visible": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep the billing/usage contract in the launch-readiness suite while runtime billing routes remain observe-only and finance-reviewed."
            },
            {
              "module_id": "legal",
              "plan_state": "restricted_workspace_observe_only",
              "billing_owner": "billing_operations_legal",
              "invoice_contact": "billing+legal@homejourney.sg",
              "billing_period": "2026-07",
              "usage_unit": "document_scan",
              "included_units": 10,
              "used_units": 14,
              "billable_units": 4,
              "quota_state": "warning",
              "invoice_state": "review_required",
              "overage_review_state": "manual_review_required",
              "automatic_overage_enforcement_allowed": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "usage_summary_test_id": "platform-legal-usage-summary",
              "label": "Legal",
              "workspace_root": "/console/o/[orgId]/legal",
              "usage_event_id": "evt-legal-billing-usage-summary",
              "usage_event_status": "succeeded",
              "usage_event_surface": "admin_action",
              "usage_event_route_or_tool": "/console/o/[orgId]/legal",
              "usage_event_quantity": 14,
              "source_event_count": 1,
              "reconciliation_status": "approved",
              "billing_exclusion_reason": null,
              "observe_only_mode": "observe_only",
              "allowed_actions": [
                "usage_event_capture",
                "usage_rollup_generation",
                "quota_warning",
                "draft_invoice_generation",
                "admin_reconciliation_review"
              ],
              "blocked_actions": [
                "automatic_overage_billing",
                "quota_enforcement",
                "invoice_sending",
                "payment_collection",
                "credential_suspension",
                "scope_downgrade"
              ],
              "raw_usage_event_payload_visible": false,
              "raw_payment_payload_visible": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep the billing/usage contract in the launch-readiness suite while runtime billing routes remain observe-only and finance-reviewed."
            },
            {
              "module_id": "developer",
              "plan_state": "restricted_workspace_observe_only",
              "billing_owner": "billing_operations_developer",
              "invoice_contact": "billing+developer@homejourney.sg",
              "billing_period": "2026-07",
              "usage_unit": "schedule_request",
              "included_units": 10,
              "used_units": 14,
              "billable_units": 4,
              "quota_state": "warning",
              "invoice_state": "review_required",
              "overage_review_state": "manual_review_required",
              "automatic_overage_enforcement_allowed": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "usage_summary_test_id": "platform-developer-usage-summary",
              "label": "Developer",
              "workspace_root": "/console/o/[orgId]/developer",
              "usage_event_id": "evt-developer-billing-usage-summary",
              "usage_event_status": "succeeded",
              "usage_event_surface": "admin_action",
              "usage_event_route_or_tool": "/console/o/[orgId]/developer",
              "usage_event_quantity": 14,
              "source_event_count": 1,
              "reconciliation_status": "approved",
              "billing_exclusion_reason": null,
              "observe_only_mode": "observe_only",
              "allowed_actions": [
                "usage_event_capture",
                "usage_rollup_generation",
                "quota_warning",
                "draft_invoice_generation",
                "admin_reconciliation_review"
              ],
              "blocked_actions": [
                "automatic_overage_billing",
                "quota_enforcement",
                "invoice_sending",
                "payment_collection",
                "credential_suspension",
                "scope_downgrade"
              ],
              "raw_usage_event_payload_visible": false,
              "raw_payment_payload_visible": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep the billing/usage contract in the launch-readiness suite while runtime billing routes remain observe-only and finance-reviewed."
            },
            {
              "module_id": "renovation",
              "plan_state": "restricted_workspace_observe_only",
              "billing_owner": "billing_operations_renovation",
              "invoice_contact": "billing+renovation@homejourney.sg",
              "billing_period": "2026-07",
              "usage_unit": "document_scan",
              "included_units": 10,
              "used_units": 14,
              "billable_units": 4,
              "quota_state": "warning",
              "invoice_state": "review_required",
              "overage_review_state": "manual_review_required",
              "automatic_overage_enforcement_allowed": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "usage_summary_test_id": "platform-renovation-usage-summary",
              "label": "Renovation",
              "workspace_root": "/console/o/[orgId]/renovation",
              "usage_event_id": "evt-renovation-billing-usage-summary",
              "usage_event_status": "succeeded",
              "usage_event_surface": "admin_action",
              "usage_event_route_or_tool": "/console/o/[orgId]/renovation",
              "usage_event_quantity": 14,
              "source_event_count": 1,
              "reconciliation_status": "approved",
              "billing_exclusion_reason": null,
              "observe_only_mode": "observe_only",
              "allowed_actions": [
                "usage_event_capture",
                "usage_rollup_generation",
                "quota_warning",
                "draft_invoice_generation",
                "admin_reconciliation_review"
              ],
              "blocked_actions": [
                "automatic_overage_billing",
                "quota_enforcement",
                "invoice_sending",
                "payment_collection",
                "credential_suspension",
                "scope_downgrade"
              ],
              "raw_usage_event_payload_visible": false,
              "raw_payment_payload_visible": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep the billing/usage contract in the launch-readiness suite while runtime billing routes remain observe-only and finance-reviewed."
            }
          ],
          "summary": {
            "total_verticals": 7,
            "plan_state_visible": 7,
            "billing_owner_visible": 7,
            "invoice_contact_visible": 7,
            "billing_owner_visibility_gates": 7,
            "partner_billing_table_reads_deferred": 7,
            "usage_events_present": 7,
            "customer_visible_usage_summaries": 7,
            "automatic_overage_enforcement_blocked": 7,
            "billing_owner_gate_side_effects_blocked": 7,
            "launch_ready_contracts": 7,
            "source_contract": "vertical_billing_usage_contract",
            "usage_read_model": "customer_visible_contract_no_usage_event_table_reads",
            "billing_write_model": "observe_only_no_invoice_or_payment_side_effects"
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "required_scope": "platform.billing_owner_visibility.read",
            "granted_billing_scopes": [
              "platform.billing_owner_visibility.read"
            ],
            "actor_model": "api_key_automation_client",
            "data_access": "customer_visible_usage_summary_contract_only",
            "table_access": "no_usage_event_or_partner_billing_table_reads",
            "mutation_access": "usage_billing_writes_deferred"
          },
          "public_safety": {
            "usage_event_table_reads_allowed": false,
            "partner_billing_table_reads_allowed": false,
            "raw_usage_event_payload_visible": false,
            "raw_payment_payload_visible": false,
            "invoice_external_send_allowed": false,
            "payment_collection_allowed": false,
            "quota_enforcement_allowed": false,
            "credential_suspension_allowed": false,
            "external_finance_calls": false,
            "billing_write_mutations_enabled": false
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "service_provider",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_usage_summary"
        }
      },
      "MissingScopeProblem": {
        "summary": "Missing scope problem",
        "value": {
          "type": "https://platform-api.homejourney.sg/problems/missing_scope",
          "title": "Missing required scope",
          "status": 403,
          "code": "missing_scope",
          "detail": "The request is not authorized for this platform capability.",
          "request_id": "req_01hjp_slice1"
        }
      },
      "RateLimitProblem": {
        "summary": "Rate limit problem",
        "value": {
          "type": "https://platform-api.homejourney.sg/problems/rate_limit_exceeded",
          "title": "Rate limit exceeded",
          "status": 429,
          "code": "rate_limit_exceeded",
          "detail": "The platform API rate limit has been exceeded.",
          "request_id": "req_01hjp_slice1"
        }
      },
      "InvalidRequestProblem": {
        "summary": "Invalid request problem",
        "value": {
          "type": "https://platform-api.homejourney.sg/problems/invalid_request",
          "title": "Invalid request",
          "status": 400,
          "code": "invalid_request",
          "detail": "The request body failed validation.",
          "request_id": "req_01hjp_slice1"
        }
      },
      "IdempotencyConflictProblem": {
        "summary": "Idempotency conflict problem",
        "value": {
          "type": "https://platform-api.homejourney.sg/problems/idempotency_key_conflict",
          "title": "Idempotency key conflict",
          "status": 409,
          "code": "idempotency_key_conflict",
          "detail": "The same Idempotency-Key was already used with a different request body.",
          "request_id": "req_01hjp_slice1"
        }
      },
      "IdempotencyInProgressProblem": {
        "summary": "Idempotency in-progress problem",
        "value": {
          "type": "https://platform-api.homejourney.sg/problems/idempotency_in_progress",
          "title": "Idempotency key in progress",
          "status": 409,
          "code": "idempotency_in_progress",
          "detail": "The same Idempotency-Key is already processing.",
          "request_id": "req_01hjp_slice1"
        }
      },
      "ListingNotFoundProblem": {
        "summary": "Listing not found problem",
        "value": {
          "type": "https://platform-api.homejourney.sg/problems/listing_not_found",
          "title": "Listing not found",
          "status": 404,
          "code": "listing_not_found",
          "detail": "The listing was not found for this platform environment.",
          "request_id": "req_01hjp_slice1"
        }
      },
      "ViewingRequestNotFoundProblem": {
        "summary": "Viewing request not found problem",
        "value": {
          "type": "https://platform-api.homejourney.sg/problems/viewing_request_not_found",
          "title": "Viewing request not found",
          "status": 404,
          "code": "viewing_request_not_found",
          "detail": "The viewing request was not found for this platform environment.",
          "request_id": "req_01hjp_slice1"
        }
      },
      "WebhookEndpointNotFoundProblem": {
        "summary": "Webhook endpoint not found problem",
        "value": {
          "type": "https://platform-api.homejourney.sg/problems/webhook_endpoint_not_found",
          "title": "Webhook endpoint not found",
          "status": 404,
          "code": "webhook_endpoint_not_found",
          "detail": "The webhook endpoint was not found for this platform environment.",
          "request_id": "req_01hjp_slice1"
        }
      },
      "PlatformOnboardingEvidenceSubmitted": {
        "summary": "Support owner evidence submitted",
        "value": {
          "evidence": {
            "evidence_id": "00000000-0000-4000-8000-000000000412",
            "evidence_key": "support_owner_recorded",
            "status": "complete",
            "external_reference": null,
            "recorded_at": "2026-06-05T00:00:00.000Z",
            "source": "platform.partner_submitted_evidence",
            "manual_review_required_for_live_access": true
          },
          "readiness": {
            "product": {
              "id": "service_provider_sandbox",
              "label": "Service Provider Sandbox",
              "target_actor": "service_provider",
              "launch_stage": "slice_1",
              "environment": "sandbox",
              "deployment_tier": "sandbox"
            },
            "organization": {
              "id": "00000000-0000-4000-8000-000000000001",
              "slug": "sandbox-platform-demo",
              "display_name": "Sandbox Platform Demo",
              "type": "partner"
            },
            "readiness": {
              "state": "sandbox_ready_live_blocked",
              "sandbox_access": "available",
              "live_access": "blocked_manual_review",
              "credential_self_service": "sandbox_available"
            },
            "application": {
              "id": "00000000-0000-4000-8000-000000000401",
              "product_id": "service_provider_sandbox",
              "target_actor": "service_provider",
              "state": "sandbox_ready",
              "sandbox_access": "available",
              "live_access": "blocked_manual_review",
              "credential_self_service": "sandbox_available",
              "contract_package": {
                "id": "platform_service_provider_terms",
                "version": "2026.06"
              },
              "support_owner_email": "support@example.com",
              "technical_owner_email": "tech@example.com",
              "submitted_at": null,
              "reviewed_at": null,
              "approved_at": null,
              "suspended_at": null,
              "updated_at": "2026-06-05T00:00:00.000Z",
              "source": "platform.onboarding_applications"
            },
            "contract_evidence": [],
            "contract_lifecycle": {
              "state": "signature_pending",
              "contract_package": {
                "id": "platform_service_provider_terms",
                "version": "2026.06",
                "display_name": "Service Provider Platform Terms",
                "status": "active",
                "target_actor": "service_provider",
                "allowed_environments": [
                  "sandbox",
                  "live"
                ],
                "sandbox_terms_rail": "clickwrap",
                "allowed_signing_rails": [
                  "clickwrap",
                  "manual_review",
                  "sign_with_singpass",
                  "digital_signing_partner"
                ],
                "required_authority_sources": [
                  "manual_review",
                  "corppass_myinfo_business",
                  "singpass_myinfo"
                ],
                "allowed_commercial_package_ids": [
                  "pilot_partner_api",
                  "production_partner_api"
                ],
                "default_commercial_package_id": "pilot_partner_api",
                "allowed_live_scopes": [
                  "organizations.read",
                  "listings.read",
                  "viewings.read",
                  "viewings.write",
                  "webhooks.read",
                  "webhooks.write"
                ],
                "requires_business_authority": true,
                "countersignature_required": true,
                "signing_session_available": false,
                "blocks_live_credentials_without_commercial_approval": true,
                "ai_agent_summary": "Current service-provider sandbox terms support clickwrap sandbox acceptance; live access requires recorded authority, contract evidence, commercial approval, and manual review.",
                "blocked_claims": [
                  "live credentials are never created by contract package discovery",
                  "external signing evidence does not bypass Homejourney commercial approval"
                ],
                "source_spec": "docs/features/platform/PLATFORM_CONTRACT_SIGNING_AND_COMMERCIAL_TERMS_SPEC.md"
              },
              "signing_rails": [
                {
                  "rail": "clickwrap",
                  "availability": "complete",
                  "purpose": "sandbox_terms_acceptance",
                  "human_approval_required": true,
                  "reason": "Current sandbox platform terms are accepted."
                },
                {
                  "rail": "manual_review",
                  "availability": "available",
                  "purpose": "contract_signature",
                  "human_approval_required": true,
                  "reason": "Manual legal evidence is available until a signing partner is approved."
                },
                {
                  "rail": "sign_with_singpass",
                  "availability": "planned",
                  "purpose": "contract_signature",
                  "human_approval_required": true,
                  "reason": "Requires Sign with Singpass product approval."
                },
                {
                  "rail": "digital_signing_partner",
                  "availability": "planned",
                  "purpose": "contract_signature",
                  "human_approval_required": true,
                  "reason": "Requires a signed provider ADR and webhook slice."
                }
              ],
              "business_authority": {
                "required_for_live": true,
                "recorded": false,
                "accepted_sources": [
                  "manual_review",
                  "corppass_myinfo_business",
                  "singpass_myinfo"
                ],
                "identity_rail_is_not_signature": true
              },
              "commercial_approval": {
                "required_for_live": true,
                "recorded": false,
                "status": "missing",
                "commercial_terms_id": null,
                "commercial_package_id": "pilot_partner_api",
                "approval_reference": null,
                "billing_account_required": true,
                "billing_account_recorded": false,
                "approved_live_scope_count": 0,
                "effective_from": null,
                "effective_until": null,
                "source": "computed_fallback"
              },
              "commercial_packages": {
                "sandbox": {
                  "id": "sandbox_developer",
                  "display_name": "Sandbox Developer",
                  "tier": "sandbox_developer",
                  "overage_mode": "non_billable",
                  "billing_account_required_for_live": false,
                  "observe_only_launch": true,
                  "support_tier": "async",
                  "sla_posture": "none",
                  "status_page_visibility": "none"
                },
                "target_live": {
                  "id": "pilot_partner_api",
                  "display_name": "Pilot Partner API",
                  "tier": "pilot_partner",
                  "overage_mode": "observe_only",
                  "billing_account_required_for_live": true,
                  "observe_only_launch": true,
                  "support_tier": "named_owner",
                  "sla_posture": "internal_slo",
                  "status_page_visibility": "internal"
                }
              },
              "commercial_terms": {
                "currency": "SGD",
                "sandbox_billing": "non_billable",
                "live_billing_mode": "observe_only_until_signed_package",
                "platform_access_fee": "zero_unless_signed_package",
                "api_usage_fee": "zero_until_usage_billing_package",
                "provider_onboarding_fee": "zero_unless_signed_package",
                "default_marketplace_commission": "none",
                "legacy_commission_inheritance": "blocked_without_signed_package"
              },
              "live_gate": {
                "requires_active_contract": true,
                "requires_business_authority": true,
                "requires_commercial_approval": true,
                "creates_live_credentials": false,
                "legacy_fee_terms_blocked": [
                  "legacy_10_percent_commission",
                  "legacy_85_percent_provider_rate"
                ]
              },
              "source_documents": [
                "docs/features/platform/PLATFORM_CONTRACT_SIGNING_AND_COMMERCIAL_TERMS_SPEC.md",
                "docs/features/platform/PLATFORM_COMMERCIAL_OPERATING_MODEL.md",
                "docs/features/platform/API_FIRST_PLATFORM_READINESS_FINDINGS.md"
              ]
            },
            "state_machine": {
              "current_state": "sandbox_ready",
              "terminal_states": [
                "offboarded"
              ],
              "allowed_transitions": [],
              "last_event": {
                "id": "00000000-0000-4000-8000-000000000433",
                "event_type": "evidence_recorded",
                "from_state": "sandbox_ready",
                "to_state": "sandbox_ready",
                "actor_type": "api_key",
                "reason_code": "support_owner_recorded_partner_submitted",
                "created_at": "2026-06-05T00:00:00.000Z"
              },
              "source": "platform.onboarding_applications"
            },
            "evidence": [
              {
                "id": "current_terms_acceptance",
                "label": "Current platform terms accepted",
                "status": "complete",
                "owner": "legal",
                "source": "platform.onboarding_terms_acceptance",
                "required_for": [
                  "sandbox_credentials"
                ],
                "blocks_actions": []
              },
              {
                "id": "support_owner_recorded",
                "label": "Support owner recorded",
                "status": "complete",
                "owner": "support",
                "source": "platform.partner_submitted_evidence",
                "required_for": [
                  "live_access"
                ],
                "blocks_actions": []
              }
            ],
            "missing_gates": [],
            "allowed_actions": [
              {
                "id": "platform.onboarding.submit_evidence",
                "label": "Submit onboarding evidence",
                "kind": "write",
                "href": "/v1/onboarding/evidence",
                "sensitivity": "regulated",
                "idempotency_required": true,
                "confirmation_required": true,
                "human_approval_required": true
              }
            ],
            "blocked_actions": [],
            "fallbacks": [],
            "status_components": [],
            "support": {
              "mode": "pilot_email",
              "contact": "support@homejourney.sg",
              "case_types": [
                "onboarding",
                "sandbox",
                "credentials",
                "contracting",
                "live_access"
              ]
            },
            "ai_agent_policy": {
              "default_authority": "read_and_draft_only",
              "mutating_actions_require_human_approval": true,
              "allowed_action_ids": [
                "platform.onboarding.submit_evidence"
              ],
              "blocked_action_ids": [],
              "tool_contract": "REST/OpenAPI only; MCP, CLI, and SDK must not bypass platform API routes"
            },
            "livemode": false,
            "request_id": "req_01hjp_evidence_submit"
          },
          "idempotency_key_hash": "sha256:idem_onboarding_evidence",
          "livemode": false,
          "request_id": "req_01hjp_evidence_submit"
        }
      },
      "PlatformOnboardingLiveAccessRequested": {
        "summary": "Live access review requested",
        "value": {
          "live_access_request": {
            "application_id": "00000000-0000-4000-8000-000000000401",
            "state": "live_review_pending",
            "live_access": "review_pending",
            "submitted_at": "2026-06-05T00:00:00.000Z",
            "manual_review_required": true,
            "live_credentials_created": false,
            "support": {
              "mode": "pilot_email",
              "contact": "support@homejourney.sg"
            }
          },
          "readiness": {
            "product": {
              "id": "service_provider_sandbox",
              "label": "Service Provider Sandbox",
              "target_actor": "service_provider",
              "launch_stage": "slice_1",
              "environment": "sandbox",
              "deployment_tier": "sandbox"
            },
            "organization": {
              "id": "00000000-0000-4000-8000-000000000001",
              "slug": "sandbox-platform-demo",
              "display_name": "Sandbox Platform Demo",
              "type": "partner"
            },
            "readiness": {
              "state": "live_review_pending",
              "sandbox_access": "available",
              "live_access": "review_pending",
              "credential_self_service": "live_blocked"
            },
            "application": {
              "id": "00000000-0000-4000-8000-000000000401",
              "product_id": "service_provider_sandbox",
              "target_actor": "service_provider",
              "state": "live_review_pending",
              "sandbox_access": "available",
              "live_access": "review_pending",
              "credential_self_service": "live_blocked",
              "contract_package": {
                "id": "platform_service_provider_terms",
                "version": "2026.06"
              },
              "support_owner_email": "support@example.com",
              "technical_owner_email": null,
              "submitted_at": "2026-06-05T00:00:00.000Z",
              "reviewed_at": null,
              "approved_at": null,
              "suspended_at": null,
              "updated_at": "2026-06-05T00:00:00.000Z",
              "source": "platform.onboarding_applications"
            },
            "contract_evidence": [],
            "contract_lifecycle": {
              "state": "signature_recorded",
              "contract_package": {
                "id": "platform_service_provider_terms",
                "version": "2026.06",
                "display_name": "Service Provider Platform Terms",
                "status": "active",
                "target_actor": "service_provider",
                "allowed_environments": [
                  "sandbox",
                  "live"
                ],
                "sandbox_terms_rail": "clickwrap",
                "allowed_signing_rails": [
                  "clickwrap",
                  "manual_review",
                  "sign_with_singpass",
                  "digital_signing_partner"
                ],
                "required_authority_sources": [
                  "manual_review",
                  "corppass_myinfo_business",
                  "singpass_myinfo"
                ],
                "allowed_commercial_package_ids": [
                  "pilot_partner_api",
                  "production_partner_api"
                ],
                "default_commercial_package_id": "pilot_partner_api",
                "allowed_live_scopes": [
                  "organizations.read",
                  "listings.read",
                  "viewings.read",
                  "viewings.write",
                  "webhooks.read",
                  "webhooks.write"
                ],
                "requires_business_authority": true,
                "countersignature_required": true,
                "signing_session_available": false,
                "blocks_live_credentials_without_commercial_approval": true,
                "ai_agent_summary": "Current service-provider sandbox terms support clickwrap sandbox acceptance; live access requires recorded authority, contract evidence, commercial approval, and manual review.",
                "blocked_claims": [
                  "live credentials are never created by contract package discovery",
                  "external signing evidence does not bypass Homejourney commercial approval"
                ],
                "source_spec": "docs/features/platform/PLATFORM_CONTRACT_SIGNING_AND_COMMERCIAL_TERMS_SPEC.md"
              },
              "signing_rails": [
                {
                  "rail": "clickwrap",
                  "availability": "complete",
                  "purpose": "sandbox_terms_acceptance",
                  "human_approval_required": true,
                  "reason": "Current sandbox platform terms are accepted."
                },
                {
                  "rail": "manual_review",
                  "availability": "complete",
                  "purpose": "contract_signature",
                  "human_approval_required": true,
                  "reason": "Manual legal evidence is available until a signing partner is approved."
                },
                {
                  "rail": "sign_with_singpass",
                  "availability": "planned",
                  "purpose": "contract_signature",
                  "human_approval_required": true,
                  "reason": "Requires Sign with Singpass product approval."
                },
                {
                  "rail": "digital_signing_partner",
                  "availability": "planned",
                  "purpose": "contract_signature",
                  "human_approval_required": true,
                  "reason": "Requires a signed provider ADR and webhook slice."
                }
              ],
              "business_authority": {
                "required_for_live": true,
                "recorded": true,
                "accepted_sources": [
                  "manual_review",
                  "corppass_myinfo_business",
                  "singpass_myinfo"
                ],
                "identity_rail_is_not_signature": true
              },
              "commercial_approval": {
                "required_for_live": true,
                "recorded": true,
                "status": "active",
                "commercial_terms_id": "00000000-0000-4000-8000-000000000441",
                "commercial_package_id": "pilot_partner_api",
                "approval_reference": "FIN-2026-001",
                "billing_account_required": true,
                "billing_account_recorded": true,
                "approved_live_scope_count": 2,
                "effective_from": "2026-06-01T00:00:00.000Z",
                "effective_until": "2099-06-01T00:00:00.000Z",
                "source": "platform.onboarding_commercial_terms"
              },
              "commercial_packages": {
                "sandbox": {
                  "id": "sandbox_developer",
                  "display_name": "Sandbox Developer",
                  "tier": "sandbox_developer",
                  "overage_mode": "non_billable",
                  "billing_account_required_for_live": false,
                  "observe_only_launch": true,
                  "support_tier": "async",
                  "sla_posture": "none",
                  "status_page_visibility": "none"
                },
                "target_live": {
                  "id": "pilot_partner_api",
                  "display_name": "Pilot Partner API",
                  "tier": "pilot_partner",
                  "overage_mode": "observe_only",
                  "billing_account_required_for_live": true,
                  "observe_only_launch": true,
                  "support_tier": "named_owner",
                  "sla_posture": "internal_slo",
                  "status_page_visibility": "internal"
                }
              },
              "commercial_terms": {
                "currency": "SGD",
                "sandbox_billing": "non_billable",
                "live_billing_mode": "observe_only_until_signed_package",
                "platform_access_fee": "zero_unless_signed_package",
                "api_usage_fee": "zero_until_usage_billing_package",
                "provider_onboarding_fee": "zero_unless_signed_package",
                "default_marketplace_commission": "none",
                "legacy_commission_inheritance": "blocked_without_signed_package"
              },
              "live_gate": {
                "requires_active_contract": true,
                "requires_business_authority": true,
                "requires_commercial_approval": true,
                "creates_live_credentials": false,
                "legacy_fee_terms_blocked": [
                  "legacy_10_percent_commission",
                  "legacy_85_percent_provider_rate"
                ]
              },
              "source_documents": [
                "docs/features/platform/PLATFORM_CONTRACT_SIGNING_AND_COMMERCIAL_TERMS_SPEC.md",
                "docs/features/platform/PLATFORM_COMMERCIAL_OPERATING_MODEL.md",
                "docs/features/platform/API_FIRST_PLATFORM_READINESS_FINDINGS.md"
              ]
            },
            "state_machine": {
              "current_state": "live_review_pending",
              "terminal_states": [
                "offboarded"
              ],
              "allowed_transitions": [
                {
                  "id": "live_review_pending_to_live_approved",
                  "from": "live_review_pending",
                  "to": "live_approved",
                  "requires_evidence": [
                    "current_terms_acceptance",
                    "sandbox_credential_issued",
                    "support_owner_recorded",
                    "business_authority_verified",
                    "business_eligibility_recorded",
                    "contract_signature_recorded",
                    "commercial_terms_approved",
                    "manual_live_review_approval"
                  ],
                  "blocked_by_gate_ids": [
                    "manual_live_review_approval"
                  ],
                  "human_approval_required": true,
                  "available": false
                }
              ],
              "last_event": {
                "id": "00000000-0000-4000-8000-000000000433",
                "event_type": "live_access_requested",
                "from_state": "sandbox_ready",
                "to_state": "live_review_pending",
                "actor_type": "api_key",
                "reason_code": "partner_requested_live_review",
                "created_at": "2026-06-05T00:00:00.000Z"
              },
              "source": "platform.onboarding_applications"
            },
            "evidence": [
              {
                "id": "current_terms_acceptance",
                "label": "Current platform terms accepted",
                "status": "complete",
                "owner": "legal",
                "source": "platform.onboarding_terms_acceptance",
                "required_for": [
                  "sandbox_credentials"
                ],
                "blocks_actions": []
              },
              {
                "id": "sandbox_credential_issued",
                "label": "Sandbox credential issued",
                "status": "complete",
                "owner": "platform",
                "source": "platform.credential_self_service",
                "required_for": [
                  "live_access"
                ],
                "blocks_actions": []
              },
              {
                "id": "support_owner_recorded",
                "label": "Support owner recorded",
                "status": "complete",
                "owner": "support",
                "source": "platform.onboarding_evidence",
                "required_for": [
                  "live_access"
                ],
                "blocks_actions": []
              },
              {
                "id": "business_authority_verified",
                "label": "Business authority verified",
                "status": "complete",
                "owner": "compliance",
                "source": "platform.onboarding_evidence",
                "required_for": [
                  "live_access"
                ],
                "blocks_actions": []
              },
              {
                "id": "contract_signature_recorded",
                "label": "Contract signature recorded",
                "status": "complete",
                "owner": "legal",
                "source": "platform.onboarding_evidence",
                "required_for": [
                  "live_access"
                ],
                "blocks_actions": []
              },
              {
                "id": "commercial_terms_approved",
                "label": "Commercial terms approved",
                "status": "complete",
                "owner": "finance",
                "source": "platform.onboarding_commercial_terms",
                "required_for": [
                  "live_access"
                ],
                "blocks_actions": []
              },
              {
                "id": "manual_live_review_approval",
                "label": "Manual live review approved",
                "status": "missing",
                "owner": "platform",
                "source": "platform.onboarding_evidence",
                "required_for": [
                  "live_access"
                ],
                "blocks_actions": [
                  "platform.credentials.create_live_key"
                ]
              }
            ],
            "missing_gates": [
              {
                "id": "manual_live_review_approval",
                "label": "Manual live review approved",
                "status": "missing",
                "owner": "platform",
                "source": "platform.onboarding_evidence",
                "required_for": [
                  "live_access"
                ],
                "blocks_actions": [
                  "platform.credentials.create_live_key"
                ]
              }
            ],
            "allowed_actions": [
              {
                "id": "platform.onboarding.view_readiness",
                "label": "View onboarding readiness",
                "kind": "read",
                "href": "/v1/onboarding/readiness",
                "sensitivity": "partner",
                "idempotency_required": false,
                "confirmation_required": false,
                "human_approval_required": false
              },
              {
                "id": "platform.onboarding.accept_terms",
                "label": "Accept current platform terms",
                "kind": "write",
                "href": "/v1/onboarding/terms/acceptance",
                "sensitivity": "regulated",
                "idempotency_required": true,
                "confirmation_required": true,
                "human_approval_required": true
              }
            ],
            "blocked_actions": [
              {
                "id": "platform.credentials.create_live_key",
                "label": "Create live key",
                "reason": "Live key creation requires manual live review approval and remains operator-controlled.",
                "missing_gate_ids": [
                  "manual_live_review_approval",
                  "live_approved_state"
                ],
                "kind": "write",
                "href": null,
                "sensitivity": "regulated",
                "idempotency_required": true,
                "confirmation_required": true,
                "human_approval_required": true
              }
            ],
            "fallbacks": [],
            "status_components": [],
            "support": {
              "mode": "pilot_email",
              "contact": "support@homejourney.sg",
              "case_types": [
                "onboarding",
                "sandbox",
                "credentials",
                "contracting",
                "live_access"
              ]
            },
            "ai_agent_policy": {
              "default_authority": "read_and_draft_only",
              "mutating_actions_require_human_approval": true,
              "allowed_action_ids": [
                "platform.onboarding.view_readiness",
                "platform.onboarding.accept_terms"
              ],
              "blocked_action_ids": [
                "platform.credentials.create_live_key"
              ],
              "tool_contract": "REST/OpenAPI only; MCP, CLI, and SDK must not bypass platform API routes"
            },
            "livemode": false,
            "request_id": "req_01hjp_live_access_request"
          },
          "idempotency_key_hash": "sha256:idem_live_access",
          "livemode": false,
          "request_id": "req_01hjp_live_access_request"
        }
      },
      "PlatformContractPackageCatalog": {
        "summary": "Registered onboarding contract packages",
        "value": {
          "packages": [
            {
              "id": "platform_service_provider_terms",
              "version": "2026.06",
              "display_name": "Service Provider Platform Terms",
              "status": "active",
              "target_actor": "service_provider",
              "allowed_environments": [
                "sandbox",
                "live"
              ],
              "sandbox_terms_rail": "clickwrap",
              "allowed_signing_rails": [
                "clickwrap",
                "manual_review",
                "sign_with_singpass",
                "digital_signing_partner"
              ],
              "required_authority_sources": [
                "manual_review",
                "corppass_myinfo_business",
                "singpass_myinfo"
              ],
              "allowed_commercial_package_ids": [
                "pilot_partner_api",
                "production_partner_api"
              ],
              "default_commercial_package_id": "pilot_partner_api",
              "allowed_live_scopes": [
                "organizations.read",
                "listings.read",
                "viewings.read",
                "viewings.write",
                "webhooks.read",
                "webhooks.write"
              ],
              "requires_business_authority": true,
              "countersignature_required": true,
              "signing_session_available": false,
              "blocks_live_credentials_without_commercial_approval": true,
              "ai_agent_summary": "Current service-provider sandbox terms support clickwrap sandbox acceptance; live access requires recorded authority, contract evidence, commercial approval, and manual review.",
              "blocked_claims": [
                "live credentials are never created by contract package discovery",
                "external signing evidence does not bypass Homejourney commercial approval"
              ],
              "source_spec": "docs/features/platform/PLATFORM_CONTRACT_SIGNING_AND_COMMERCIAL_TERMS_SPEC.md"
            },
            {
              "id": "platform_bank_partner_terms",
              "version": "2026.06",
              "display_name": "Bank Partner Platform Terms",
              "status": "draft",
              "target_actor": "bank_partner",
              "allowed_environments": [
                "sandbox",
                "live"
              ],
              "sandbox_terms_rail": "clickwrap",
              "allowed_signing_rails": [
                "clickwrap",
                "manual_review"
              ],
              "required_authority_sources": [
                "manual_review",
                "corppass_myinfo_business",
                "singpass_myinfo"
              ],
              "allowed_commercial_package_ids": [
                "enterprise_bank_api"
              ],
              "default_commercial_package_id": "enterprise_bank_api",
              "allowed_live_scopes": [
                "organizations.read",
                "banks.frontends.read",
                "banks.eligibility.read",
                "banks.products.read",
                "banks.rates.read"
              ],
              "requires_business_authority": true,
              "countersignature_required": true,
              "signing_session_available": false,
              "blocks_live_credentials_without_commercial_approval": true,
              "ai_agent_summary": "Draft package reserved for upcoming bank partner onboarding surfaces; not selectable for live access until activated.",
              "blocked_claims": [
                "draft contract packages cannot approve live credentials",
                "draft contract packages require legal and commercial activation before use"
              ],
              "source_spec": "docs/features/platform/PLATFORM_CONTRACT_SIGNING_AND_COMMERCIAL_TERMS_SPEC.md"
            }
          ],
          "default_package": {
            "id": "platform_service_provider_terms",
            "version": "2026.06"
          },
          "livemode": false,
          "request_id": "req-contract-packages"
        }
      },
      "PlatformContractEnvelopeCurrentSandbox": {
        "summary": "Current service-provider contract envelope",
        "value": {
          "product": {
            "id": "service_provider_sandbox",
            "label": "Service Provider Sandbox",
            "target_actor": "service_provider",
            "launch_stage": "slice_1",
            "environment": "sandbox",
            "deployment_tier": "sandbox"
          },
          "organization": {
            "id": "00000000-0000-4000-8000-000000000001",
            "slug": "sandbox-platform-demo",
            "display_name": "Sandbox Platform Demo",
            "type": "partner"
          },
          "contract_envelope": {
            "id": "00000000-0000-4000-8000-000000000421",
            "state": "not_started",
            "contract_package": {
              "id": "platform_service_provider_terms",
              "version": "2026.06",
              "display_name": "Service Provider Platform Terms",
              "status": "active",
              "target_actor": "service_provider",
              "allowed_environments": [
                "sandbox",
                "live"
              ],
              "sandbox_terms_rail": "clickwrap",
              "allowed_signing_rails": [
                "clickwrap",
                "manual_review",
                "sign_with_singpass",
                "digital_signing_partner"
              ],
              "required_authority_sources": [
                "manual_review",
                "corppass_myinfo_business",
                "singpass_myinfo"
              ],
              "allowed_commercial_package_ids": [
                "pilot_partner_api",
                "production_partner_api"
              ],
              "default_commercial_package_id": "pilot_partner_api",
              "allowed_live_scopes": [
                "organizations.read",
                "listings.read",
                "viewings.read",
                "viewings.write",
                "webhooks.read",
                "webhooks.write"
              ],
              "requires_business_authority": true,
              "countersignature_required": true,
              "signing_session_available": false,
              "blocks_live_credentials_without_commercial_approval": true,
              "ai_agent_summary": "Current service-provider sandbox terms support clickwrap sandbox acceptance; live access requires recorded authority, contract evidence, commercial approval, and manual review.",
              "blocked_claims": [
                "live credentials are never created by contract package discovery",
                "external signing evidence does not bypass Homejourney commercial approval"
              ],
              "source_spec": "docs/features/platform/PLATFORM_CONTRACT_SIGNING_AND_COMMERCIAL_TERMS_SPEC.md"
            },
            "signing_rail": "manual_review",
            "signature_status": "not_started",
            "authority": {
              "required_for_live": true,
              "recorded": false,
              "accepted_sources": [
                "manual_review",
                "corppass_myinfo_business",
                "singpass_myinfo"
              ],
              "identity_rail_is_not_signature": true
            },
            "signature": {
              "recorded": false,
              "provider_signature_received": false,
              "countersignature_required": true,
              "countersignature_recorded": false,
              "document_hash_recorded": false,
              "evidence_reference_recorded": false,
              "raw_document_available": false,
              "signed_at": null,
              "countersigned_at": null,
              "expires_at": null,
              "source": "platform.onboarding_contract_signatures"
            },
            "commercial_approval": {
              "required_for_live": true,
              "recorded": false,
              "status": "missing",
              "commercial_terms_id": null,
              "commercial_package_id": "pilot_partner_api",
              "approval_reference": null,
              "billing_account_required": true,
              "billing_account_recorded": false,
              "approved_live_scope_count": 0,
              "effective_from": null,
              "effective_until": null,
              "source": "computed_fallback"
            },
            "signing_provider": {
              "signing_session_available": false,
              "provider_selection_required": true,
              "allowed_rails": [
                "clickwrap",
                "manual_review",
                "sign_with_singpass",
                "digital_signing_partner"
              ],
              "callback_expected": false,
              "direct_singpass_available": false,
              "digital_signing_partner_available": false
            },
            "live_gate": {
              "satisfies_contract_gate": false,
              "satisfies_live_contract_gate": false,
              "missing_gate_ids": [
                "business_authority_verified",
                "business_eligibility_recorded",
                "contract_signature_recorded",
                "contract_countersignature_recorded",
                "commercial_terms_approved"
              ],
              "creates_live_credentials": false,
              "human_approval_required": true
            },
            "ai_agent_policy": {
              "read_only": true,
              "launch_signing_allowed": false,
              "raw_documents_exposed": false,
              "signing_provider_payloads_exposed": false
            },
            "source": "platform.onboarding_contract_signatures",
            "derived_from": [
              "docs/features/platform/PLATFORM_CONTRACT_SIGNING_AND_COMMERCIAL_TERMS_SPEC.md",
              "docs/features/platform/API_FIRST_PLATFORM_READINESS_FINDINGS.md",
              "docs/features/platform/API_FIRST_SELF_SERVE_CONTROL_PLANE_SPEC.md"
            ]
          },
          "related_contract_evidence": [
            {
              "id": "00000000-0000-4000-8000-000000000421",
              "signing_rail": "manual_review",
              "signature_status": "not_started",
              "document_hash_recorded": false,
              "evidence_reference_recorded": false,
              "signed_at": null,
              "countersigned_at": null,
              "expires_at": null,
              "source": "platform.onboarding_contract_signatures"
            }
          ],
          "blocked_actions": [
            {
              "id": "platform.contract.launch_signing",
              "label": "Launch contract signing",
              "reason": "Contract signing is manual until provider authority, signing provider ADR, and commercial package approval are complete.",
              "missing_gate_ids": [
                "business_authority_verified",
                "contract_signing_provider_enabled"
              ],
              "kind": "external_handoff",
              "href": null,
              "sensitivity": "regulated",
              "idempotency_required": true,
              "confirmation_required": true,
              "human_approval_required": true
            },
            {
              "id": "platform.onboarding.request_live_access",
              "label": "Request live access review",
              "reason": "Live access review requires sandbox credentials, business authority, signed contract, and support owner.",
              "missing_gate_ids": [
                "current_terms_acceptance",
                "sandbox_credential_issued",
                "support_owner_recorded",
                "business_authority_verified",
                "business_eligibility_recorded",
                "contract_signature_recorded",
                "commercial_terms_approved"
              ],
              "kind": "write",
              "href": null,
              "sensitivity": "regulated",
              "idempotency_required": true,
              "confirmation_required": true,
              "human_approval_required": true
            },
            {
              "id": "platform.credentials.create_live_key",
              "label": "Create live key",
              "reason": "Live key creation requires manual live review approval and remains operator-controlled.",
              "missing_gate_ids": [
                "current_terms_acceptance",
                "sandbox_credential_issued",
                "support_owner_recorded",
                "business_authority_verified",
                "business_eligibility_recorded",
                "contract_signature_recorded",
                "commercial_terms_approved",
                "manual_live_review_approval",
                "live_approved_state"
              ],
              "kind": "write",
              "href": null,
              "sensitivity": "regulated",
              "idempotency_required": true,
              "confirmation_required": true,
              "human_approval_required": true
            }
          ],
          "ai_agent_policy": {
            "default_authority": "read_and_draft_only",
            "read_only": true,
            "mutating_actions_require_human_approval": true,
            "launch_signing_allowed": false,
            "raw_documents_exposed": false,
            "signing_provider_payloads_exposed": false,
            "blocked_action_ids": [
              "platform.contract.launch_signing",
              "platform.onboarding.request_live_access",
              "platform.credentials.create_live_key"
            ],
            "tool_contract": "REST/OpenAPI only; MCP, CLI, and SDK must not bypass platform API routes"
          },
          "livemode": false,
          "request_id": "req_01hjp_contract_envelope"
        }
      },
      "PlatformOnboardingReadinessSandbox": {
        "summary": "Service-provider sandbox readiness",
        "value": {
          "product": {
            "id": "service_provider_sandbox",
            "label": "Service Provider Sandbox",
            "target_actor": "service_provider",
            "launch_stage": "slice_1",
            "environment": "sandbox",
            "deployment_tier": "sandbox"
          },
          "organization": {
            "id": "00000000-0000-4000-8000-000000000001",
            "slug": "sandbox-platform-demo",
            "display_name": "Sandbox Platform Demo",
            "type": "partner"
          },
          "readiness": {
            "state": "sandbox_ready_live_blocked",
            "sandbox_access": "available",
            "live_access": "blocked_manual_review",
            "credential_self_service": "deferred_until_reviewed_slice"
          },
          "application": {
            "id": "00000000-0000-4000-8000-000000000401",
            "product_id": "service_provider_sandbox",
            "target_actor": "service_provider",
            "state": "sandbox_ready",
            "sandbox_access": "available",
            "live_access": "blocked_manual_review",
            "credential_self_service": "deferred_until_reviewed_slice",
            "contract_package": {
              "id": "platform_service_provider_terms",
              "version": "2026.06"
            },
            "support_owner_email": null,
            "technical_owner_email": null,
            "submitted_at": null,
            "reviewed_at": null,
            "approved_at": null,
            "suspended_at": null,
            "updated_at": "2026-06-05T00:00:00.000Z",
            "source": "platform.onboarding_applications"
          },
          "contract_evidence": [
            {
              "id": "00000000-0000-4000-8000-000000000421",
              "contract_package": {
                "id": "platform_service_provider_terms",
                "version": "2026.06"
              },
              "signing_rail": "manual_review",
              "signature_status": "not_started",
              "document_hash_algorithm": null,
              "document_hash": null,
              "evidence_reference": null,
              "signer_display_name": null,
              "signer_role": null,
              "signer_authority_source": null,
              "signed_at": null,
              "countersigned_at": null,
              "expires_at": null,
              "source": "platform.onboarding_contract_signatures"
            }
          ],
          "contract_lifecycle": {
            "state": "terms_not_accepted",
            "contract_package": {
              "id": "platform_service_provider_terms",
              "version": "2026.06",
              "display_name": "Service Provider Platform Terms",
              "status": "active",
              "target_actor": "service_provider",
              "allowed_environments": [
                "sandbox",
                "live"
              ],
              "sandbox_terms_rail": "clickwrap",
              "allowed_signing_rails": [
                "clickwrap",
                "manual_review",
                "sign_with_singpass",
                "digital_signing_partner"
              ],
              "required_authority_sources": [
                "manual_review",
                "corppass_myinfo_business",
                "singpass_myinfo"
              ],
              "allowed_commercial_package_ids": [
                "pilot_partner_api",
                "production_partner_api"
              ],
              "default_commercial_package_id": "pilot_partner_api",
              "allowed_live_scopes": [
                "organizations.read",
                "listings.read",
                "viewings.read",
                "viewings.write",
                "webhooks.read",
                "webhooks.write"
              ],
              "requires_business_authority": true,
              "countersignature_required": true,
              "signing_session_available": false,
              "blocks_live_credentials_without_commercial_approval": true,
              "ai_agent_summary": "Current service-provider sandbox terms support clickwrap sandbox acceptance; live access requires recorded authority, contract evidence, commercial approval, and manual review.",
              "blocked_claims": [
                "live credentials are never created by contract package discovery",
                "external signing evidence does not bypass Homejourney commercial approval"
              ],
              "source_spec": "docs/features/platform/PLATFORM_CONTRACT_SIGNING_AND_COMMERCIAL_TERMS_SPEC.md"
            },
            "signing_rails": [
              {
                "rail": "clickwrap",
                "availability": "available",
                "purpose": "sandbox_terms_acceptance",
                "human_approval_required": true,
                "reason": "Available for current sandbox platform terms acceptance."
              },
              {
                "rail": "manual_review",
                "availability": "blocked",
                "purpose": "contract_signature",
                "human_approval_required": true,
                "reason": "Manual contract evidence requires accepted platform terms first."
              },
              {
                "rail": "sign_with_singpass",
                "availability": "planned",
                "purpose": "contract_signature",
                "human_approval_required": true,
                "reason": "Requires Sign with Singpass product approval."
              },
              {
                "rail": "digital_signing_partner",
                "availability": "planned",
                "purpose": "contract_signature",
                "human_approval_required": true,
                "reason": "Requires a signed provider ADR and webhook slice."
              }
            ],
            "business_authority": {
              "required_for_live": true,
              "recorded": false,
              "accepted_sources": [
                "manual_review",
                "corppass_myinfo_business",
                "singpass_myinfo"
              ],
              "identity_rail_is_not_signature": true
            },
            "commercial_approval": {
              "required_for_live": true,
              "recorded": false,
              "status": "missing",
              "commercial_terms_id": null,
              "commercial_package_id": "pilot_partner_api",
              "approval_reference": null,
              "billing_account_required": true,
              "billing_account_recorded": false,
              "approved_live_scope_count": 0,
              "effective_from": null,
              "effective_until": null,
              "source": "computed_fallback"
            },
            "commercial_packages": {
              "sandbox": {
                "id": "sandbox_developer",
                "display_name": "Sandbox Developer",
                "tier": "sandbox_developer",
                "overage_mode": "non_billable",
                "billing_account_required_for_live": false,
                "observe_only_launch": true,
                "support_tier": "async",
                "sla_posture": "none",
                "status_page_visibility": "none"
              },
              "target_live": {
                "id": "pilot_partner_api",
                "display_name": "Pilot Partner API",
                "tier": "pilot_partner",
                "overage_mode": "observe_only",
                "billing_account_required_for_live": true,
                "observe_only_launch": true,
                "support_tier": "named_owner",
                "sla_posture": "internal_slo",
                "status_page_visibility": "internal"
              }
            },
            "commercial_terms": {
              "currency": "SGD",
              "sandbox_billing": "non_billable",
              "live_billing_mode": "observe_only_until_signed_package",
              "platform_access_fee": "zero_unless_signed_package",
              "api_usage_fee": "zero_until_usage_billing_package",
              "provider_onboarding_fee": "zero_unless_signed_package",
              "default_marketplace_commission": "none",
              "legacy_commission_inheritance": "blocked_without_signed_package"
            },
            "live_gate": {
              "requires_active_contract": true,
              "requires_business_authority": true,
              "requires_commercial_approval": true,
              "creates_live_credentials": false,
              "legacy_fee_terms_blocked": [
                "legacy_10_percent_commission",
                "legacy_85_percent_provider_rate"
              ]
            },
            "source_documents": [
              "docs/features/platform/PLATFORM_CONTRACT_SIGNING_AND_COMMERCIAL_TERMS_SPEC.md",
              "docs/features/platform/PLATFORM_COMMERCIAL_OPERATING_MODEL.md",
              "docs/features/platform/API_FIRST_PLATFORM_READINESS_FINDINGS.md"
            ]
          },
          "state_machine": {
            "current_state": "sandbox_ready",
            "terminal_states": [
              "offboarded"
            ],
            "allowed_transitions": [
              {
                "id": "sandbox_ready_to_live_review_pending",
                "from": "sandbox_ready",
                "to": "live_review_pending",
                "requires_evidence": [
                  "current_terms_acceptance",
                  "sandbox_credential_issued",
                  "support_owner_recorded",
                  "business_authority_verified",
                  "business_eligibility_recorded",
                  "contract_signature_recorded",
                  "commercial_terms_approved"
                ],
                "blocked_by_gate_ids": [
                  "current_terms_acceptance",
                  "sandbox_credential_issued",
                  "support_owner_recorded",
                  "business_authority_verified",
                  "business_eligibility_recorded",
                  "contract_signature_recorded",
                  "commercial_terms_approved"
                ],
                "human_approval_required": true,
                "available": false
              }
            ],
            "last_event": {
              "id": "00000000-0000-4000-8000-000000000431",
              "event_type": "created",
              "from_state": null,
              "to_state": "sandbox_ready",
              "actor_type": "system",
              "reason_code": "seed_sandbox_demo",
              "created_at": "2026-06-05T00:00:00.000Z"
            },
            "source": "platform.onboarding_applications"
          },
          "evidence": [
            {
              "id": "organization_context",
              "label": "Organization context resolved",
              "status": "complete",
              "owner": "platform",
              "source": "authenticated platform request context",
              "required_for": [
                "readiness_read"
              ],
              "blocks_actions": []
            },
            {
              "id": "current_terms_acceptance",
              "label": "Current platform terms accepted",
              "status": "missing",
              "owner": "legal",
              "source": "platform.onboarding_evidence",
              "required_for": [
                "sandbox_credentials"
              ],
              "blocks_actions": [
                "platform.credentials.create_sandbox_key"
              ]
            },
            {
              "id": "support_owner_recorded",
              "label": "Support owner recorded",
              "status": "missing",
              "owner": "support",
              "source": "platform.onboarding_evidence",
              "required_for": [
                "live_access"
              ],
              "blocks_actions": [
                "platform.onboarding.request_live_access",
                "platform.credentials.create_live_key"
              ]
            },
            {
              "id": "sandbox_credential_issued",
              "label": "Sandbox credential issued",
              "status": "missing",
              "owner": "platform",
              "source": "platform.onboarding_evidence",
              "required_for": [
                "live_access"
              ],
              "blocks_actions": [
                "platform.onboarding.request_live_access",
                "platform.credentials.create_live_key"
              ]
            },
            {
              "id": "business_authority_verified",
              "label": "Business authority verified",
              "status": "missing",
              "owner": "compliance",
              "source": "platform.onboarding_evidence",
              "required_for": [
                "live_access"
              ],
              "blocks_actions": [
                "platform.onboarding.request_live_access",
                "platform.credentials.create_live_key"
              ]
            },
            {
              "id": "contract_signature_recorded",
              "label": "Contract signature recorded",
              "status": "missing",
              "owner": "legal",
              "source": "platform.onboarding_evidence",
              "required_for": [
                "live_access"
              ],
              "blocks_actions": [
                "platform.onboarding.request_live_access",
                "platform.credentials.create_live_key"
              ]
            },
            {
              "id": "commercial_terms_approved",
              "label": "Commercial terms approved",
              "status": "missing",
              "owner": "finance",
              "source": "computed fallback onboarding evidence",
              "required_for": [
                "live_access"
              ],
              "blocks_actions": [
                "platform.onboarding.request_live_access",
                "platform.credentials.create_live_key"
              ]
            },
            {
              "id": "manual_live_review_approval",
              "label": "Manual live review approved",
              "status": "missing",
              "owner": "platform",
              "source": "platform.onboarding_evidence",
              "required_for": [
                "live_access"
              ],
              "blocks_actions": [
                "platform.credentials.create_live_key"
              ]
            }
          ],
          "missing_gates": [
            {
              "id": "current_terms_acceptance",
              "label": "Current platform terms accepted",
              "status": "missing",
              "owner": "legal",
              "source": "platform.onboarding_evidence",
              "required_for": [
                "sandbox_credentials"
              ],
              "blocks_actions": [
                "platform.credentials.create_sandbox_key"
              ]
            },
            {
              "id": "support_owner_recorded",
              "label": "Support owner recorded",
              "status": "missing",
              "owner": "support",
              "source": "platform.onboarding_evidence",
              "required_for": [
                "live_access"
              ],
              "blocks_actions": [
                "platform.onboarding.request_live_access",
                "platform.credentials.create_live_key"
              ]
            },
            {
              "id": "sandbox_credential_issued",
              "label": "Sandbox credential issued",
              "status": "missing",
              "owner": "platform",
              "source": "platform.onboarding_evidence",
              "required_for": [
                "live_access"
              ],
              "blocks_actions": [
                "platform.onboarding.request_live_access",
                "platform.credentials.create_live_key"
              ]
            },
            {
              "id": "business_authority_verified",
              "label": "Business authority verified",
              "status": "missing",
              "owner": "compliance",
              "source": "platform.onboarding_evidence",
              "required_for": [
                "live_access"
              ],
              "blocks_actions": [
                "platform.onboarding.request_live_access",
                "platform.credentials.create_live_key"
              ]
            },
            {
              "id": "contract_signature_recorded",
              "label": "Contract signature recorded",
              "status": "missing",
              "owner": "legal",
              "source": "platform.onboarding_evidence",
              "required_for": [
                "live_access"
              ],
              "blocks_actions": [
                "platform.onboarding.request_live_access",
                "platform.credentials.create_live_key"
              ]
            },
            {
              "id": "commercial_terms_approved",
              "label": "Commercial terms approved",
              "status": "missing",
              "owner": "finance",
              "source": "computed fallback onboarding evidence",
              "required_for": [
                "live_access"
              ],
              "blocks_actions": [
                "platform.onboarding.request_live_access",
                "platform.credentials.create_live_key"
              ]
            },
            {
              "id": "manual_live_review_approval",
              "label": "Manual live review approved",
              "status": "missing",
              "owner": "platform",
              "source": "platform.onboarding_evidence",
              "required_for": [
                "live_access"
              ],
              "blocks_actions": [
                "platform.credentials.create_live_key"
              ]
            }
          ],
          "allowed_actions": [
            {
              "id": "platform.onboarding.view_readiness",
              "label": "View onboarding readiness",
              "kind": "read",
              "href": "/v1/onboarding/readiness",
              "sensitivity": "partner",
              "idempotency_required": false,
              "confirmation_required": false,
              "human_approval_required": false
            },
            {
              "id": "platform.onboarding.accept_terms",
              "label": "Accept current platform terms",
              "kind": "write",
              "href": "/v1/onboarding/terms/acceptance",
              "sensitivity": "regulated",
              "idempotency_required": true,
              "confirmation_required": true,
              "human_approval_required": true
            }
          ],
          "blocked_actions": [
            {
              "id": "platform.credentials.create_sandbox_key",
              "label": "Create sandbox key",
              "reason": "Sandbox key creation requires accepted terms and reviewed credential self-service state.",
              "missing_gate_ids": [
                "current_terms_acceptance",
                "credential_self_service"
              ],
              "kind": "write",
              "href": null,
              "sensitivity": "confidential",
              "idempotency_required": true,
              "confirmation_required": true,
              "human_approval_required": true
            },
            {
              "id": "platform.onboarding.request_live_access",
              "label": "Request live access review",
              "reason": "Live access review requires sandbox credentials, business authority, signed contract, and support owner.",
              "missing_gate_ids": [
                "current_terms_acceptance",
                "sandbox_credential_issued",
                "support_owner_recorded",
                "business_authority_verified",
                "business_eligibility_recorded",
                "contract_signature_recorded",
                "commercial_terms_approved"
              ],
              "kind": "write",
              "href": null,
              "sensitivity": "regulated",
              "idempotency_required": true,
              "confirmation_required": true,
              "human_approval_required": true
            },
            {
              "id": "platform.credentials.create_live_key",
              "label": "Create live key",
              "reason": "Live key creation requires manual live review approval and remains operator-controlled.",
              "missing_gate_ids": [
                "current_terms_acceptance",
                "sandbox_credential_issued",
                "support_owner_recorded",
                "business_authority_verified",
                "business_eligibility_recorded",
                "contract_signature_recorded",
                "commercial_terms_approved",
                "manual_live_review_approval",
                "live_approved_state"
              ],
              "kind": "write",
              "href": null,
              "sensitivity": "regulated",
              "idempotency_required": true,
              "confirmation_required": true,
              "human_approval_required": true
            }
          ],
          "fallbacks": [
            {
              "id": "pilot_support",
              "label": "Pilot support",
              "trigger": "Self-serve action is blocked or partner needs manual review.",
              "support_path": "Email support@homejourney.sg with request_id."
            }
          ],
          "status_components": [
            {
              "id": "rest_api",
              "label": "REST API",
              "readiness": "dry_run_ready",
              "truth_source": "synthetic_check_manifest",
              "partner_visible": false,
              "partner_status_visibility": "authenticated_partner_readiness",
              "public_status_component_id": "partner_platform_api",
              "status_page_url": "https://status.homejourney.sg",
              "covered_surfaces": [
                "REST API",
                "SDK",
                "CLI"
              ],
              "evidence_sources": [
                "openapi_fetch",
                "organizations_current",
                "listing_search",
                "viewing_request_idempotency",
                "auth_failure_matrix",
                "cli_whoami"
              ],
              "public_status_blockers": [
                "Better Stack or approved public status resource is not provisioned for the platform subcomponent.",
                "Automatic synthetic or monitor-to-status degradation is not wired to the public status page.",
                "Partner communication, incident severity, and sanitized public copy are not launch-approved."
              ]
            }
          ],
          "support": {
            "mode": "pilot_email",
            "contact": "support@homejourney.sg",
            "case_types": [
              "onboarding",
              "sandbox",
              "credentials"
            ]
          },
          "ai_agent_policy": {
            "default_authority": "read_and_draft_only",
            "mutating_actions_require_human_approval": true,
            "allowed_action_ids": [
              "platform.onboarding.view_readiness",
              "platform.onboarding.accept_terms"
            ],
            "blocked_action_ids": [
              "platform.credentials.create_sandbox_key",
              "platform.onboarding.request_live_access",
              "platform.credentials.create_live_key"
            ],
            "tool_contract": "REST/OpenAPI only; MCP, CLI, and SDK must not bypass platform API routes"
          },
          "consent_evidence": {
            "grants": {
              "total": 0,
              "active": 0,
              "revoked": 0,
              "superseded": 0,
              "suspended": 0,
              "expired": 0
            },
            "purposes": [],
            "scopes": [],
            "data_categories": [],
            "retention": {
              "earliest_until": null,
              "latest_until": null
            },
            "revocation": {
              "revoked_count": 0,
              "latest_revoked_at": null
            },
            "audit": {
              "recorded_event_count": 0
            }
          },
          "livemode": false,
          "request_id": "req_01hjp_readiness"
        }
      },
      "PlatformOnboardingTermsAcceptanceSandbox": {
        "summary": "Sandbox terms accepted",
        "value": {
          "acceptance": {
            "evidence_id": "00000000-0000-4000-8000-000000000411",
            "evidence_key": "current_terms_acceptance",
            "status": "complete",
            "terms_package_id": "platform_service_provider_terms",
            "terms_version": "2026.06",
            "accepted_at": "2026-06-05T00:00:00.000Z",
            "source": "platform.onboarding_terms_acceptance"
          },
          "readiness": {
            "product": {
              "id": "service_provider_sandbox",
              "label": "Service Provider Sandbox",
              "target_actor": "service_provider",
              "launch_stage": "slice_1",
              "environment": "sandbox",
              "deployment_tier": "sandbox"
            },
            "organization": {
              "id": "00000000-0000-4000-8000-000000000001",
              "slug": "sandbox-platform-demo",
              "display_name": "Sandbox Platform Demo",
              "type": "partner"
            },
            "readiness": {
              "state": "sandbox_ready_live_blocked",
              "sandbox_access": "available",
              "live_access": "blocked_manual_review",
              "credential_self_service": "sandbox_available"
            },
            "application": {
              "id": "00000000-0000-4000-8000-000000000401",
              "product_id": "service_provider_sandbox",
              "target_actor": "service_provider",
              "state": "sandbox_ready",
              "sandbox_access": "available",
              "live_access": "blocked_manual_review",
              "credential_self_service": "sandbox_available",
              "contract_package": {
                "id": "platform_service_provider_terms",
                "version": "2026.06"
              },
              "support_owner_email": null,
              "technical_owner_email": null,
              "submitted_at": null,
              "reviewed_at": null,
              "approved_at": null,
              "suspended_at": null,
              "updated_at": "2026-06-05T00:00:00.000Z",
              "source": "platform.onboarding_applications"
            },
            "contract_evidence": [],
            "contract_lifecycle": {
              "state": "signature_pending",
              "contract_package": {
                "id": "platform_service_provider_terms",
                "version": "2026.06",
                "display_name": "Service Provider Platform Terms",
                "status": "active",
                "target_actor": "service_provider",
                "allowed_environments": [
                  "sandbox",
                  "live"
                ],
                "sandbox_terms_rail": "clickwrap",
                "allowed_signing_rails": [
                  "clickwrap",
                  "manual_review",
                  "sign_with_singpass",
                  "digital_signing_partner"
                ],
                "required_authority_sources": [
                  "manual_review",
                  "corppass_myinfo_business",
                  "singpass_myinfo"
                ],
                "allowed_commercial_package_ids": [
                  "pilot_partner_api",
                  "production_partner_api"
                ],
                "default_commercial_package_id": "pilot_partner_api",
                "allowed_live_scopes": [
                  "organizations.read",
                  "listings.read",
                  "viewings.read",
                  "viewings.write",
                  "webhooks.read",
                  "webhooks.write"
                ],
                "requires_business_authority": true,
                "countersignature_required": true,
                "signing_session_available": false,
                "blocks_live_credentials_without_commercial_approval": true,
                "ai_agent_summary": "Current service-provider sandbox terms support clickwrap sandbox acceptance; live access requires recorded authority, contract evidence, commercial approval, and manual review.",
                "blocked_claims": [
                  "live credentials are never created by contract package discovery",
                  "external signing evidence does not bypass Homejourney commercial approval"
                ],
                "source_spec": "docs/features/platform/PLATFORM_CONTRACT_SIGNING_AND_COMMERCIAL_TERMS_SPEC.md"
              },
              "signing_rails": [
                {
                  "rail": "clickwrap",
                  "availability": "complete",
                  "purpose": "sandbox_terms_acceptance",
                  "human_approval_required": true,
                  "reason": "Current sandbox platform terms are accepted."
                },
                {
                  "rail": "manual_review",
                  "availability": "available",
                  "purpose": "contract_signature",
                  "human_approval_required": true,
                  "reason": "Manual legal evidence is available until a signing partner is approved."
                },
                {
                  "rail": "sign_with_singpass",
                  "availability": "planned",
                  "purpose": "contract_signature",
                  "human_approval_required": true,
                  "reason": "Requires Sign with Singpass product approval."
                },
                {
                  "rail": "digital_signing_partner",
                  "availability": "planned",
                  "purpose": "contract_signature",
                  "human_approval_required": true,
                  "reason": "Requires a signed provider ADR and webhook slice."
                }
              ],
              "business_authority": {
                "required_for_live": true,
                "recorded": false,
                "accepted_sources": [
                  "manual_review",
                  "corppass_myinfo_business",
                  "singpass_myinfo"
                ],
                "identity_rail_is_not_signature": true
              },
              "commercial_approval": {
                "required_for_live": true,
                "recorded": false,
                "status": "missing",
                "commercial_terms_id": null,
                "commercial_package_id": "pilot_partner_api",
                "approval_reference": null,
                "billing_account_required": true,
                "billing_account_recorded": false,
                "approved_live_scope_count": 0,
                "effective_from": null,
                "effective_until": null,
                "source": "computed_fallback"
              },
              "commercial_packages": {
                "sandbox": {
                  "id": "sandbox_developer",
                  "display_name": "Sandbox Developer",
                  "tier": "sandbox_developer",
                  "overage_mode": "non_billable",
                  "billing_account_required_for_live": false,
                  "observe_only_launch": true,
                  "support_tier": "async",
                  "sla_posture": "none",
                  "status_page_visibility": "none"
                },
                "target_live": {
                  "id": "pilot_partner_api",
                  "display_name": "Pilot Partner API",
                  "tier": "pilot_partner",
                  "overage_mode": "observe_only",
                  "billing_account_required_for_live": true,
                  "observe_only_launch": true,
                  "support_tier": "named_owner",
                  "sla_posture": "internal_slo",
                  "status_page_visibility": "internal"
                }
              },
              "commercial_terms": {
                "currency": "SGD",
                "sandbox_billing": "non_billable",
                "live_billing_mode": "observe_only_until_signed_package",
                "platform_access_fee": "zero_unless_signed_package",
                "api_usage_fee": "zero_until_usage_billing_package",
                "provider_onboarding_fee": "zero_unless_signed_package",
                "default_marketplace_commission": "none",
                "legacy_commission_inheritance": "blocked_without_signed_package"
              },
              "live_gate": {
                "requires_active_contract": true,
                "requires_business_authority": true,
                "requires_commercial_approval": true,
                "creates_live_credentials": false,
                "legacy_fee_terms_blocked": [
                  "legacy_10_percent_commission",
                  "legacy_85_percent_provider_rate"
                ]
              },
              "source_documents": [
                "docs/features/platform/PLATFORM_CONTRACT_SIGNING_AND_COMMERCIAL_TERMS_SPEC.md",
                "docs/features/platform/PLATFORM_COMMERCIAL_OPERATING_MODEL.md",
                "docs/features/platform/API_FIRST_PLATFORM_READINESS_FINDINGS.md"
              ]
            },
            "state_machine": {
              "current_state": "sandbox_ready",
              "terminal_states": [
                "offboarded"
              ],
              "allowed_transitions": [],
              "last_event": null,
              "source": "platform.onboarding_applications"
            },
            "evidence": [
              {
                "id": "current_terms_acceptance",
                "label": "Current platform terms accepted",
                "status": "complete",
                "owner": "legal",
                "source": "platform.onboarding_terms_acceptance",
                "required_for": [
                  "sandbox_credentials"
                ],
                "blocks_actions": []
              }
            ],
            "missing_gates": [
              {
                "id": "sandbox_credential_issued",
                "label": "Sandbox credential issued",
                "status": "missing",
                "owner": "platform",
                "source": "platform.onboarding_evidence",
                "required_for": [
                  "live_access"
                ],
                "blocks_actions": [
                  "platform.onboarding.request_live_access",
                  "platform.credentials.create_live_key"
                ]
              }
            ],
            "allowed_actions": [
              {
                "id": "platform.onboarding.accept_terms",
                "label": "Accept current platform terms",
                "kind": "write",
                "href": "/v1/onboarding/terms/acceptance",
                "sensitivity": "regulated",
                "idempotency_required": true,
                "confirmation_required": true,
                "human_approval_required": true
              },
              {
                "id": "platform.credentials.create_sandbox_key",
                "label": "Create sandbox key",
                "kind": "write",
                "href": "/v1/onboarding/credentials/sandbox-key",
                "sensitivity": "confidential",
                "idempotency_required": true,
                "confirmation_required": true,
                "human_approval_required": true
              }
            ],
            "blocked_actions": [
              {
                "id": "platform.onboarding.request_live_access",
                "label": "Request live access review",
                "reason": "Live access review requires sandbox credentials, business authority, signed contract, and support owner.",
                "missing_gate_ids": [
                  "sandbox_credential_issued"
                ],
                "kind": "write",
                "href": null,
                "sensitivity": "regulated",
                "idempotency_required": true,
                "confirmation_required": true,
                "human_approval_required": true
              }
            ],
            "fallbacks": [],
            "status_components": [],
            "support": {
              "mode": "pilot_email",
              "contact": "support@homejourney.sg",
              "case_types": [
                "onboarding",
                "sandbox",
                "credentials"
              ]
            },
            "ai_agent_policy": {
              "default_authority": "read_and_draft_only",
              "mutating_actions_require_human_approval": true,
              "allowed_action_ids": [
                "platform.onboarding.accept_terms",
                "platform.credentials.create_sandbox_key"
              ],
              "blocked_action_ids": [
                "platform.onboarding.request_live_access"
              ],
              "tool_contract": "REST/OpenAPI only; MCP, CLI, and SDK must not bypass platform API routes"
            },
            "livemode": false,
            "request_id": "req_01hjp_terms_acceptance"
          },
          "idempotency_key_hash": "sha256:idem_terms_acceptance",
          "livemode": false,
          "request_id": "req_01hjp_terms_acceptance"
        }
      },
      "PlatformOnboardingSandboxCredentialCreated": {
        "summary": "Sandbox credential created",
        "value": {
          "credential": {
            "id": "00000000-0000-4000-8000-000000000501",
            "key_name": "Sandbox integration key",
            "key_prefix": "hjp_test_demo_ke",
            "environment": "sandbox",
            "status": "active",
            "scopes": [
              "organizations.read",
              "listings.read",
              "viewings.write"
            ],
            "expires_at": "2026-07-05T00:00:00.000Z",
            "created_at": "2026-06-05T00:00:00.000Z",
            "last_used_at": null,
            "raw_api_key": "hjp_test_REVEALED_ONCE_STORE_NOW",
            "one_time_reveal": {
              "available": true,
              "storage": "not_stored",
              "replay_behavior": "raw_key_omitted"
            }
          },
          "readiness": {
            "product": {
              "id": "service_provider_sandbox",
              "label": "Service Provider Sandbox",
              "target_actor": "service_provider",
              "launch_stage": "slice_1",
              "environment": "sandbox",
              "deployment_tier": "sandbox"
            },
            "organization": {
              "id": "00000000-0000-4000-8000-000000000001",
              "slug": "sandbox-platform-demo",
              "display_name": "Sandbox Platform Demo",
              "type": "partner"
            },
            "readiness": {
              "state": "sandbox_ready_live_blocked",
              "sandbox_access": "available",
              "live_access": "blocked_manual_review",
              "credential_self_service": "sandbox_available"
            },
            "application": {
              "id": "00000000-0000-4000-8000-000000000401",
              "product_id": "service_provider_sandbox",
              "target_actor": "service_provider",
              "state": "sandbox_ready",
              "sandbox_access": "available",
              "live_access": "blocked_manual_review",
              "credential_self_service": "sandbox_available",
              "contract_package": {
                "id": "platform_service_provider_terms",
                "version": "2026.06"
              },
              "support_owner_email": null,
              "technical_owner_email": null,
              "submitted_at": null,
              "reviewed_at": null,
              "approved_at": null,
              "suspended_at": null,
              "updated_at": "2026-06-05T00:00:00.000Z",
              "source": "platform.onboarding_applications"
            },
            "contract_evidence": [],
            "contract_lifecycle": {
              "state": "signature_pending",
              "contract_package": {
                "id": "platform_service_provider_terms",
                "version": "2026.06",
                "display_name": "Service Provider Platform Terms",
                "status": "active",
                "target_actor": "service_provider",
                "allowed_environments": [
                  "sandbox",
                  "live"
                ],
                "sandbox_terms_rail": "clickwrap",
                "allowed_signing_rails": [
                  "clickwrap",
                  "manual_review",
                  "sign_with_singpass",
                  "digital_signing_partner"
                ],
                "required_authority_sources": [
                  "manual_review",
                  "corppass_myinfo_business",
                  "singpass_myinfo"
                ],
                "allowed_commercial_package_ids": [
                  "pilot_partner_api",
                  "production_partner_api"
                ],
                "default_commercial_package_id": "pilot_partner_api",
                "allowed_live_scopes": [
                  "organizations.read",
                  "listings.read",
                  "viewings.read",
                  "viewings.write",
                  "webhooks.read",
                  "webhooks.write"
                ],
                "requires_business_authority": true,
                "countersignature_required": true,
                "signing_session_available": false,
                "blocks_live_credentials_without_commercial_approval": true,
                "ai_agent_summary": "Current service-provider sandbox terms support clickwrap sandbox acceptance; live access requires recorded authority, contract evidence, commercial approval, and manual review.",
                "blocked_claims": [
                  "live credentials are never created by contract package discovery",
                  "external signing evidence does not bypass Homejourney commercial approval"
                ],
                "source_spec": "docs/features/platform/PLATFORM_CONTRACT_SIGNING_AND_COMMERCIAL_TERMS_SPEC.md"
              },
              "signing_rails": [
                {
                  "rail": "clickwrap",
                  "availability": "complete",
                  "purpose": "sandbox_terms_acceptance",
                  "human_approval_required": true,
                  "reason": "Current sandbox platform terms are accepted."
                },
                {
                  "rail": "manual_review",
                  "availability": "available",
                  "purpose": "contract_signature",
                  "human_approval_required": true,
                  "reason": "Manual legal evidence is available until a signing partner is approved."
                },
                {
                  "rail": "sign_with_singpass",
                  "availability": "planned",
                  "purpose": "contract_signature",
                  "human_approval_required": true,
                  "reason": "Requires Sign with Singpass product approval."
                },
                {
                  "rail": "digital_signing_partner",
                  "availability": "planned",
                  "purpose": "contract_signature",
                  "human_approval_required": true,
                  "reason": "Requires a signed provider ADR and webhook slice."
                }
              ],
              "business_authority": {
                "required_for_live": true,
                "recorded": false,
                "accepted_sources": [
                  "manual_review",
                  "corppass_myinfo_business",
                  "singpass_myinfo"
                ],
                "identity_rail_is_not_signature": true
              },
              "commercial_approval": {
                "required_for_live": true,
                "recorded": false,
                "status": "missing",
                "commercial_terms_id": null,
                "commercial_package_id": "pilot_partner_api",
                "approval_reference": null,
                "billing_account_required": true,
                "billing_account_recorded": false,
                "approved_live_scope_count": 0,
                "effective_from": null,
                "effective_until": null,
                "source": "computed_fallback"
              },
              "commercial_packages": {
                "sandbox": {
                  "id": "sandbox_developer",
                  "display_name": "Sandbox Developer",
                  "tier": "sandbox_developer",
                  "overage_mode": "non_billable",
                  "billing_account_required_for_live": false,
                  "observe_only_launch": true,
                  "support_tier": "async",
                  "sla_posture": "none",
                  "status_page_visibility": "none"
                },
                "target_live": {
                  "id": "pilot_partner_api",
                  "display_name": "Pilot Partner API",
                  "tier": "pilot_partner",
                  "overage_mode": "observe_only",
                  "billing_account_required_for_live": true,
                  "observe_only_launch": true,
                  "support_tier": "named_owner",
                  "sla_posture": "internal_slo",
                  "status_page_visibility": "internal"
                }
              },
              "commercial_terms": {
                "currency": "SGD",
                "sandbox_billing": "non_billable",
                "live_billing_mode": "observe_only_until_signed_package",
                "platform_access_fee": "zero_unless_signed_package",
                "api_usage_fee": "zero_until_usage_billing_package",
                "provider_onboarding_fee": "zero_unless_signed_package",
                "default_marketplace_commission": "none",
                "legacy_commission_inheritance": "blocked_without_signed_package"
              },
              "live_gate": {
                "requires_active_contract": true,
                "requires_business_authority": true,
                "requires_commercial_approval": true,
                "creates_live_credentials": false,
                "legacy_fee_terms_blocked": [
                  "legacy_10_percent_commission",
                  "legacy_85_percent_provider_rate"
                ]
              },
              "source_documents": [
                "docs/features/platform/PLATFORM_CONTRACT_SIGNING_AND_COMMERCIAL_TERMS_SPEC.md",
                "docs/features/platform/PLATFORM_COMMERCIAL_OPERATING_MODEL.md",
                "docs/features/platform/API_FIRST_PLATFORM_READINESS_FINDINGS.md"
              ]
            },
            "state_machine": {
              "current_state": "sandbox_ready",
              "terminal_states": [
                "offboarded"
              ],
              "allowed_transitions": [],
              "last_event": {
                "id": "00000000-0000-4000-8000-000000000432",
                "event_type": "credential_issued",
                "from_state": "sandbox_ready",
                "to_state": "sandbox_ready",
                "actor_type": "api_key",
                "reason_code": "sandbox_credential_created",
                "created_at": "2026-06-05T00:00:00.000Z"
              },
              "source": "platform.onboarding_applications"
            },
            "evidence": [
              {
                "id": "current_terms_acceptance",
                "label": "Current platform terms accepted",
                "status": "complete",
                "owner": "legal",
                "source": "platform.onboarding_terms_acceptance",
                "required_for": [
                  "sandbox_credentials"
                ],
                "blocks_actions": []
              },
              {
                "id": "sandbox_credential_issued",
                "label": "Sandbox credential issued",
                "status": "complete",
                "owner": "platform",
                "source": "platform.credential_self_service",
                "required_for": [
                  "live_access"
                ],
                "blocks_actions": []
              }
            ],
            "missing_gates": [],
            "allowed_actions": [
              {
                "id": "platform.onboarding.accept_terms",
                "label": "Accept current platform terms",
                "kind": "write",
                "href": "/v1/onboarding/terms/acceptance",
                "sensitivity": "regulated",
                "idempotency_required": true,
                "confirmation_required": true,
                "human_approval_required": true
              },
              {
                "id": "platform.credentials.create_sandbox_key",
                "label": "Create sandbox key",
                "kind": "write",
                "href": "/v1/onboarding/credentials/sandbox-key",
                "sensitivity": "confidential",
                "idempotency_required": true,
                "confirmation_required": true,
                "human_approval_required": true
              }
            ],
            "blocked_actions": [],
            "fallbacks": [],
            "status_components": [],
            "support": {
              "mode": "pilot_email",
              "contact": "support@homejourney.sg",
              "case_types": [
                "onboarding",
                "sandbox",
                "credentials"
              ]
            },
            "ai_agent_policy": {
              "default_authority": "read_and_draft_only",
              "mutating_actions_require_human_approval": true,
              "allowed_action_ids": [
                "platform.onboarding.accept_terms",
                "platform.credentials.create_sandbox_key"
              ],
              "blocked_action_ids": [],
              "tool_contract": "REST/OpenAPI only; MCP, CLI, and SDK must not bypass platform API routes"
            },
            "livemode": false,
            "request_id": "req_01hjp_credential_create"
          },
          "idempotency_key_hash": "sha256:idem_sandbox_credential",
          "livemode": false,
          "request_id": "req_01hjp_credential_create"
        }
      },
      "ListingListSandbox": {
        "summary": "Sandbox listing search response",
        "value": {
          "listings": [
            {
              "id": "sandbox-listing-queenstown-001",
              "title": "Queenstown Skyline Residence",
              "property_type": "condo",
              "district": "D03",
              "approximate_location": "Queenstown MRT area",
              "price": 1380000,
              "bedrooms": 3,
              "bathrooms": 2,
              "square_feet": 980,
              "public_media_url": "https://cdn.homejourney.sg/platform/sandbox/queenstown-001.jpg",
              "source_updated_at": "2026-05-14T00:00:00.000Z",
              "freshness_status": "fresh",
              "visibility_band": "fresh",
              "last_verified_at": "2026-05-14T00:00:00.000Z",
              "livemode": false
            }
          ],
          "pagination": {
            "limit": 1,
            "next_cursor": "1"
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "ListingDetailSandbox": {
        "summary": "Sandbox listing detail response",
        "value": {
          "listing": {
            "id": "sandbox-listing-queenstown-001",
            "title": "Queenstown Skyline Residence",
            "property_type": "condo",
            "district": "D03",
            "approximate_location": "Queenstown MRT area",
            "price": 1380000,
            "bedrooms": 3,
            "bathrooms": 2,
            "square_feet": 980,
            "public_media_url": "https://cdn.homejourney.sg/platform/sandbox/queenstown-001.jpg",
            "source_updated_at": "2026-05-14T00:00:00.000Z",
            "freshness_status": "fresh",
            "visibility_band": "fresh",
            "last_verified_at": "2026-05-14T00:00:00.000Z",
            "livemode": false,
            "description": "Public-safe sandbox condominium listing for partner API integration tests.",
            "tenure": "99-year leasehold",
            "property_tenure": "99-year leasehold",
            "furnishing": "partial"
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "CreateViewingRequestSandbox": {
        "summary": "Sandbox viewing request create response",
        "value": {
          "viewing_request": {
            "id": "00000000-0000-4000-8000-000000001001",
            "listing_id": "sandbox-listing-queenstown-001",
            "status": "pending",
            "environment": "sandbox",
            "submitted_at": "2026-05-14T00:00:00.000Z"
          },
          "livemode": false,
          "idempotency_key_hash": "sha256:4f8054d6",
          "request_id": "req_01hjp_slice1",
          "prepared_action": {
            "action_id": "portal_listing_viewing_review:client:viewing:redacted",
            "status": "prepared",
            "required_scope": "viewings.write",
            "required_confirmation": "first_party_app",
            "idempotency_required": true,
            "expires_at": "2026-07-14T08:00:00.000Z",
            "side_effects": {
              "prepared_action_created": true,
              "action_prepared_event_created": true,
              "canonical_listing_mutated": false,
              "public_projection_mutated": false,
              "contact_delivered": false,
              "external_delivery_performed": false
            },
            "source_attribution": {
              "listing_id": "sandbox-listing-queenstown-001",
              "source": "platform_api",
              "source_projection": "sandbox_public_safe_listing"
            },
            "consent_boundary": {
              "consent_text_version": "platform-viewing-consent-v1",
              "consent_to_contact": true,
              "contact_data_included": false,
              "message_included": false
            },
            "safety": {
              "delegated": false,
              "api_confirmation_allowed": false,
              "api_rejection_allowed": false
            },
            "continuation": {
              "url": "https://homejourney.sg/console/o/sandbox-platform-demo/platform/portal-actions/portal_listing_viewing_review%3Aredacted",
              "handoff_required": true,
              "reason": "first_party_confirmation_required"
            },
            "principal": {
              "type": "automation_client",
              "actor_type": "api_key",
              "environment": "sandbox",
              "organization_id": "00000000-0000-4000-8000-000000000001",
              "organization_type": "sandbox",
              "client_id": "00000000-0000-4000-8000-000000000101",
              "api_key_id": "00000000-0000-4000-8000-000000000201",
              "user_id": null,
              "subject_user_id": null,
              "agent_id": null,
              "subject_agent_id": null,
              "agency_id": null,
              "team_id": null,
              "delegation_id": null,
              "delegated": false
            }
          }
        }
      },
      "ViewingRequestStatusSandbox": {
        "summary": "Sandbox viewing request status response",
        "value": {
          "viewing_request": {
            "id": "00000000-0000-4000-8000-000000001001",
            "listing_id": "sandbox-listing-queenstown-001",
            "status": "pending",
            "environment": "sandbox",
            "submitted_at": "2026-05-14T00:00:00.000Z",
            "updated_at": "2026-05-14T00:00:00.000Z"
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "CreateViewingRequestLiveSuppressed": {
        "summary": "Live side-effect-suppressed viewing request create response",
        "value": {
          "viewing_request": {
            "id": "00000000-0000-4000-8000-000000002001",
            "listing_id": "live-listing-001",
            "status": "pending",
            "environment": "live",
            "submitted_at": "2026-05-14T00:00:00.000Z"
          },
          "livemode": true,
          "idempotency_key_hash": "sha256:4f8054d6",
          "request_id": "req_01hjp_live_slice1"
        }
      },
      "ViewingRequestStatusLiveSuppressed": {
        "summary": "Live platform-owned viewing request status response",
        "value": {
          "viewing_request": {
            "id": "00000000-0000-4000-8000-000000002001",
            "listing_id": "live-listing-001",
            "status": "accepted",
            "environment": "live",
            "submitted_at": "2026-05-14T00:00:00.000Z",
            "updated_at": "2026-05-14T00:05:00.000Z"
          },
          "livemode": true,
          "request_id": "req_01hjp_live_slice1"
        }
      },
      "InvoiceDryRunsSandbox": {
        "summary": "Read-only invoice dry-run previews for every launch vertical.",
        "value": {
          "invoice_dry_runs": [
            {
              "module_id": "agent",
              "label": "Agent",
              "workspace_root": "/console/o/[orgId]/agent",
              "invoice_id": "inv-agent-billing-usage-review",
              "billing_account_org_id": "org-agent-launch-billing",
              "billing_account_client_id": "client-agent-launch-billing",
              "billing_owner": "billing_operations_agent",
              "invoice_contact": "billing+agent@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "commercial_package_id": "production_partner_api",
              "support_tier": "production",
              "aws_cost_owner": "billing_operations_agent",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "invoice_delivery_mode": "draft_only",
              "send_mode": "dry_run_preview_only",
              "send_review_state": "manual_review_required",
              "line_items": [
                {
                  "capability": "agent_workspace_usage",
                  "unit": "lead_submission",
                  "billable_units": 4,
                  "included_units": 10,
                  "adjusted_units": 0
                }
              ],
              "line_item_count": 1,
              "rollup_count": 1,
              "draft_invoice_generation_allowed": true,
              "invoice_external_send_allowed": false,
              "invoice_send_side_effects_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "raw_usage_event_payload_visible": false,
              "raw_payment_payload_visible": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep the billing/usage contract in the launch-readiness suite while runtime billing routes remain observe-only and finance-reviewed."
            },
            {
              "module_id": "agency",
              "label": "Agency",
              "workspace_root": "/console/o/[orgId]/agency",
              "invoice_id": "inv-agency-billing-usage-review",
              "billing_account_org_id": "org-agency-launch-billing",
              "billing_account_client_id": "client-agency-launch-billing",
              "billing_owner": "billing_operations_agency",
              "invoice_contact": "billing+agency@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "commercial_package_id": "production_partner_api",
              "support_tier": "production",
              "aws_cost_owner": "billing_operations_agency",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "invoice_delivery_mode": "draft_only",
              "send_mode": "dry_run_preview_only",
              "send_review_state": "manual_review_required",
              "line_items": [
                {
                  "capability": "agency_workspace_usage",
                  "unit": "crm_delivery",
                  "billable_units": 4,
                  "included_units": 10,
                  "adjusted_units": 0
                }
              ],
              "line_item_count": 1,
              "rollup_count": 1,
              "draft_invoice_generation_allowed": true,
              "invoice_external_send_allowed": false,
              "invoice_send_side_effects_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "raw_usage_event_payload_visible": false,
              "raw_payment_payload_visible": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep the billing/usage contract in the launch-readiness suite while runtime billing routes remain observe-only and finance-reviewed."
            },
            {
              "module_id": "business",
              "label": "Business",
              "workspace_root": "/console/o/[orgId]/business/overview",
              "invoice_id": "inv-business-billing-usage-review",
              "billing_account_org_id": "org-business-launch-billing",
              "billing_account_client_id": "client-business-launch-billing",
              "billing_owner": "billing_operations_business",
              "invoice_contact": "billing+business@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "commercial_package_id": "production_partner_api",
              "support_tier": "production",
              "aws_cost_owner": "billing_operations_business",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "invoice_delivery_mode": "draft_only",
              "send_mode": "dry_run_preview_only",
              "send_review_state": "manual_review_required",
              "line_items": [
                {
                  "capability": "business_workspace_usage",
                  "unit": "marketplace_install",
                  "billable_units": 4,
                  "included_units": 10,
                  "adjusted_units": 0
                }
              ],
              "line_item_count": 1,
              "rollup_count": 1,
              "draft_invoice_generation_allowed": true,
              "invoice_external_send_allowed": false,
              "invoice_send_side_effects_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "raw_usage_event_payload_visible": false,
              "raw_payment_payload_visible": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep the billing/usage contract in the launch-readiness suite while runtime billing routes remain observe-only and finance-reviewed."
            },
            {
              "module_id": "mortgage",
              "label": "Mortgage",
              "workspace_root": "/console/o/[orgId]/mortgage",
              "invoice_id": "inv-mortgage-billing-usage-review",
              "billing_account_org_id": "org-mortgage-launch-billing",
              "billing_account_client_id": "client-mortgage-launch-billing",
              "billing_owner": "billing_operations_mortgage",
              "invoice_contact": "billing+mortgage@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "commercial_package_id": "production_partner_api",
              "support_tier": "production",
              "aws_cost_owner": "billing_operations_mortgage",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "invoice_delivery_mode": "draft_only",
              "send_mode": "dry_run_preview_only",
              "send_review_state": "manual_review_required",
              "line_items": [
                {
                  "capability": "mortgage_workspace_usage",
                  "unit": "document_scan",
                  "billable_units": 4,
                  "included_units": 10,
                  "adjusted_units": 0
                }
              ],
              "line_item_count": 1,
              "rollup_count": 1,
              "draft_invoice_generation_allowed": true,
              "invoice_external_send_allowed": false,
              "invoice_send_side_effects_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "raw_usage_event_payload_visible": false,
              "raw_payment_payload_visible": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep the billing/usage contract in the launch-readiness suite while runtime billing routes remain observe-only and finance-reviewed."
            },
            {
              "module_id": "legal",
              "label": "Legal",
              "workspace_root": "/console/o/[orgId]/legal",
              "invoice_id": "inv-legal-billing-usage-review",
              "billing_account_org_id": "org-legal-launch-billing",
              "billing_account_client_id": "client-legal-launch-billing",
              "billing_owner": "billing_operations_legal",
              "invoice_contact": "billing+legal@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "commercial_package_id": "production_partner_api",
              "support_tier": "production",
              "aws_cost_owner": "billing_operations_legal",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "invoice_delivery_mode": "draft_only",
              "send_mode": "dry_run_preview_only",
              "send_review_state": "manual_review_required",
              "line_items": [
                {
                  "capability": "legal_workspace_usage",
                  "unit": "document_scan",
                  "billable_units": 4,
                  "included_units": 10,
                  "adjusted_units": 0
                }
              ],
              "line_item_count": 1,
              "rollup_count": 1,
              "draft_invoice_generation_allowed": true,
              "invoice_external_send_allowed": false,
              "invoice_send_side_effects_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "raw_usage_event_payload_visible": false,
              "raw_payment_payload_visible": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep the billing/usage contract in the launch-readiness suite while runtime billing routes remain observe-only and finance-reviewed."
            },
            {
              "module_id": "developer",
              "label": "Developer",
              "workspace_root": "/console/o/[orgId]/developer",
              "invoice_id": "inv-developer-billing-usage-review",
              "billing_account_org_id": "org-developer-launch-billing",
              "billing_account_client_id": "client-developer-launch-billing",
              "billing_owner": "billing_operations_developer",
              "invoice_contact": "billing+developer@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "commercial_package_id": "production_partner_api",
              "support_tier": "production",
              "aws_cost_owner": "billing_operations_developer",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "invoice_delivery_mode": "draft_only",
              "send_mode": "dry_run_preview_only",
              "send_review_state": "manual_review_required",
              "line_items": [
                {
                  "capability": "developer_workspace_usage",
                  "unit": "schedule_request",
                  "billable_units": 4,
                  "included_units": 10,
                  "adjusted_units": 0
                }
              ],
              "line_item_count": 1,
              "rollup_count": 1,
              "draft_invoice_generation_allowed": true,
              "invoice_external_send_allowed": false,
              "invoice_send_side_effects_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "raw_usage_event_payload_visible": false,
              "raw_payment_payload_visible": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep the billing/usage contract in the launch-readiness suite while runtime billing routes remain observe-only and finance-reviewed."
            },
            {
              "module_id": "renovation",
              "label": "Renovation",
              "workspace_root": "/console/o/[orgId]/renovation",
              "invoice_id": "inv-renovation-billing-usage-review",
              "billing_account_org_id": "org-renovation-launch-billing",
              "billing_account_client_id": "client-renovation-launch-billing",
              "billing_owner": "billing_operations_renovation",
              "invoice_contact": "billing+renovation@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "commercial_package_id": "production_partner_api",
              "support_tier": "production",
              "aws_cost_owner": "billing_operations_renovation",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "invoice_delivery_mode": "draft_only",
              "send_mode": "dry_run_preview_only",
              "send_review_state": "manual_review_required",
              "line_items": [
                {
                  "capability": "renovation_workspace_usage",
                  "unit": "document_scan",
                  "billable_units": 4,
                  "included_units": 10,
                  "adjusted_units": 0
                }
              ],
              "line_item_count": 1,
              "rollup_count": 1,
              "draft_invoice_generation_allowed": true,
              "invoice_external_send_allowed": false,
              "invoice_send_side_effects_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "raw_usage_event_payload_visible": false,
              "raw_payment_payload_visible": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "launch_ready": true,
              "blocker": null,
              "next_action": "Keep the billing/usage contract in the launch-readiness suite while runtime billing routes remain observe-only and finance-reviewed."
            }
          ],
          "summary": {
            "total_verticals": 7,
            "plan_state_visible": 7,
            "billing_owner_visible": 7,
            "invoice_contact_visible": 7,
            "billing_owner_visibility_gates": 7,
            "partner_billing_table_reads_deferred": 7,
            "usage_events_present": 7,
            "customer_visible_usage_summaries": 7,
            "automatic_overage_enforcement_blocked": 7,
            "billing_owner_gate_side_effects_blocked": 7,
            "launch_ready_contracts": 7,
            "source_contract": "vertical_billing_usage_contract",
            "invoice_dry_run_model": "deterministic_invoice_draft_contract_no_billing_table_reads",
            "invoice_dry_runs_present": 7,
            "draft_invoice_generation_allowed": 7,
            "invoice_send_side_effects_blocked": 7,
            "payment_collection_blocked": 7
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "required_scope": "platform.billing_owner_visibility.read",
            "granted_billing_scopes": [
              "platform.billing_owner_visibility.read"
            ],
            "actor_model": "api_key_automation_client",
            "data_access": "invoice_dry_run_contract_only",
            "table_access": "no_usage_event_or_partner_billing_table_reads",
            "mutation_access": "billing_writes_deferred"
          },
          "public_safety": {
            "usage_event_table_reads_allowed": false,
            "partner_billing_table_reads_allowed": false,
            "raw_usage_event_payload_visible": false,
            "raw_payment_payload_visible": false,
            "invoice_external_send_allowed": false,
            "invoice_send_side_effects_allowed": false,
            "payment_collection_allowed": false,
            "quota_enforcement_allowed": false,
            "credential_suspension_allowed": false,
            "external_finance_calls": false,
            "billing_write_mutations_enabled": false
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "service_provider",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_invoice_dry_runs"
        }
      },
      "InvoiceDeliveryReconciliationSandbox": {
        "summary": "Read-only invoice delivery reconciliation gates for every launch vertical.",
        "value": {
          "invoice_delivery_reconciliation": [
            {
              "module_id": "agent",
              "label": "Agent",
              "workspace_root": "/console/o/[orgId]/agent",
              "invoice_id": "inv-agent-billing-usage-review",
              "billing_account_org_id": "org-agent-launch-billing",
              "billing_account_client_id": "client-agent-launch-billing",
              "billing_owner": "billing_operations_agent",
              "invoice_contact": "billing+agent@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "invoice_delivery_mode": "draft_only",
              "delivery_channel": "operator_review_queue",
              "delivery_destination": "billing+agent@homejourney.sg",
              "reconciliation_decision": "blocked_until_delivery_receipt",
              "reconciliation_state": "manual_reconciliation_required",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run",
                "invoice_contact",
                "delivery_channel_policy"
              ],
              "missing_prerequisites": [
                "manual_finance_review",
                "delivery_receipt_store",
                "recipient_acknowledgement",
                "support_owner",
                "audit_event"
              ],
              "delivery_reconciliation_ready": false,
              "delivery_receipt_recorded": false,
              "recipient_acknowledgement_recorded": false,
              "invoice_external_send_allowed": false,
              "invoice_delivery_side_effects_allowed": false,
              "finance_provider_call_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "invoice_delivery_blocked_until_receipt_acknowledgement_and_audit_proof",
              "next_action": "Keep invoice delivery blocked until finance review, delivery receipt storage, recipient acknowledgement, support owner, and audit gates have route-backed proof."
            },
            {
              "module_id": "agency",
              "label": "Agency",
              "workspace_root": "/console/o/[orgId]/agency",
              "invoice_id": "inv-agency-billing-usage-review",
              "billing_account_org_id": "org-agency-launch-billing",
              "billing_account_client_id": "client-agency-launch-billing",
              "billing_owner": "billing_operations_agency",
              "invoice_contact": "billing+agency@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "invoice_delivery_mode": "draft_only",
              "delivery_channel": "operator_review_queue",
              "delivery_destination": "billing+agency@homejourney.sg",
              "reconciliation_decision": "blocked_until_delivery_receipt",
              "reconciliation_state": "manual_reconciliation_required",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run",
                "invoice_contact",
                "delivery_channel_policy"
              ],
              "missing_prerequisites": [
                "manual_finance_review",
                "delivery_receipt_store",
                "recipient_acknowledgement",
                "support_owner",
                "audit_event"
              ],
              "delivery_reconciliation_ready": false,
              "delivery_receipt_recorded": false,
              "recipient_acknowledgement_recorded": false,
              "invoice_external_send_allowed": false,
              "invoice_delivery_side_effects_allowed": false,
              "finance_provider_call_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "invoice_delivery_blocked_until_receipt_acknowledgement_and_audit_proof",
              "next_action": "Keep invoice delivery blocked until finance review, delivery receipt storage, recipient acknowledgement, support owner, and audit gates have route-backed proof."
            },
            {
              "module_id": "business",
              "label": "Business",
              "workspace_root": "/console/o/[orgId]/business/overview",
              "invoice_id": "inv-business-billing-usage-review",
              "billing_account_org_id": "org-business-launch-billing",
              "billing_account_client_id": "client-business-launch-billing",
              "billing_owner": "billing_operations_business",
              "invoice_contact": "billing+business@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "invoice_delivery_mode": "draft_only",
              "delivery_channel": "operator_review_queue",
              "delivery_destination": "billing+business@homejourney.sg",
              "reconciliation_decision": "blocked_until_delivery_receipt",
              "reconciliation_state": "manual_reconciliation_required",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run",
                "invoice_contact",
                "delivery_channel_policy"
              ],
              "missing_prerequisites": [
                "manual_finance_review",
                "delivery_receipt_store",
                "recipient_acknowledgement",
                "support_owner",
                "audit_event"
              ],
              "delivery_reconciliation_ready": false,
              "delivery_receipt_recorded": false,
              "recipient_acknowledgement_recorded": false,
              "invoice_external_send_allowed": false,
              "invoice_delivery_side_effects_allowed": false,
              "finance_provider_call_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "invoice_delivery_blocked_until_receipt_acknowledgement_and_audit_proof",
              "next_action": "Keep invoice delivery blocked until finance review, delivery receipt storage, recipient acknowledgement, support owner, and audit gates have route-backed proof."
            },
            {
              "module_id": "mortgage",
              "label": "Mortgage",
              "workspace_root": "/console/o/[orgId]/mortgage",
              "invoice_id": "inv-mortgage-billing-usage-review",
              "billing_account_org_id": "org-mortgage-launch-billing",
              "billing_account_client_id": "client-mortgage-launch-billing",
              "billing_owner": "billing_operations_mortgage",
              "invoice_contact": "billing+mortgage@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "invoice_delivery_mode": "draft_only",
              "delivery_channel": "operator_review_queue",
              "delivery_destination": "billing+mortgage@homejourney.sg",
              "reconciliation_decision": "blocked_until_delivery_receipt",
              "reconciliation_state": "manual_reconciliation_required",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run",
                "invoice_contact",
                "delivery_channel_policy"
              ],
              "missing_prerequisites": [
                "manual_finance_review",
                "delivery_receipt_store",
                "recipient_acknowledgement",
                "support_owner",
                "audit_event"
              ],
              "delivery_reconciliation_ready": false,
              "delivery_receipt_recorded": false,
              "recipient_acknowledgement_recorded": false,
              "invoice_external_send_allowed": false,
              "invoice_delivery_side_effects_allowed": false,
              "finance_provider_call_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "invoice_delivery_blocked_until_receipt_acknowledgement_and_audit_proof",
              "next_action": "Keep invoice delivery blocked until finance review, delivery receipt storage, recipient acknowledgement, support owner, and audit gates have route-backed proof."
            },
            {
              "module_id": "legal",
              "label": "Legal",
              "workspace_root": "/console/o/[orgId]/legal",
              "invoice_id": "inv-legal-billing-usage-review",
              "billing_account_org_id": "org-legal-launch-billing",
              "billing_account_client_id": "client-legal-launch-billing",
              "billing_owner": "billing_operations_legal",
              "invoice_contact": "billing+legal@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "invoice_delivery_mode": "draft_only",
              "delivery_channel": "operator_review_queue",
              "delivery_destination": "billing+legal@homejourney.sg",
              "reconciliation_decision": "blocked_until_delivery_receipt",
              "reconciliation_state": "manual_reconciliation_required",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run",
                "invoice_contact",
                "delivery_channel_policy"
              ],
              "missing_prerequisites": [
                "manual_finance_review",
                "delivery_receipt_store",
                "recipient_acknowledgement",
                "support_owner",
                "audit_event"
              ],
              "delivery_reconciliation_ready": false,
              "delivery_receipt_recorded": false,
              "recipient_acknowledgement_recorded": false,
              "invoice_external_send_allowed": false,
              "invoice_delivery_side_effects_allowed": false,
              "finance_provider_call_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "invoice_delivery_blocked_until_receipt_acknowledgement_and_audit_proof",
              "next_action": "Keep invoice delivery blocked until finance review, delivery receipt storage, recipient acknowledgement, support owner, and audit gates have route-backed proof."
            },
            {
              "module_id": "developer",
              "label": "Developer",
              "workspace_root": "/console/o/[orgId]/developer",
              "invoice_id": "inv-developer-billing-usage-review",
              "billing_account_org_id": "org-developer-launch-billing",
              "billing_account_client_id": "client-developer-launch-billing",
              "billing_owner": "billing_operations_developer",
              "invoice_contact": "billing+developer@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "invoice_delivery_mode": "draft_only",
              "delivery_channel": "operator_review_queue",
              "delivery_destination": "billing+developer@homejourney.sg",
              "reconciliation_decision": "blocked_until_delivery_receipt",
              "reconciliation_state": "manual_reconciliation_required",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run",
                "invoice_contact",
                "delivery_channel_policy"
              ],
              "missing_prerequisites": [
                "manual_finance_review",
                "delivery_receipt_store",
                "recipient_acknowledgement",
                "support_owner",
                "audit_event"
              ],
              "delivery_reconciliation_ready": false,
              "delivery_receipt_recorded": false,
              "recipient_acknowledgement_recorded": false,
              "invoice_external_send_allowed": false,
              "invoice_delivery_side_effects_allowed": false,
              "finance_provider_call_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "invoice_delivery_blocked_until_receipt_acknowledgement_and_audit_proof",
              "next_action": "Keep invoice delivery blocked until finance review, delivery receipt storage, recipient acknowledgement, support owner, and audit gates have route-backed proof."
            },
            {
              "module_id": "renovation",
              "label": "Renovation",
              "workspace_root": "/console/o/[orgId]/renovation",
              "invoice_id": "inv-renovation-billing-usage-review",
              "billing_account_org_id": "org-renovation-launch-billing",
              "billing_account_client_id": "client-renovation-launch-billing",
              "billing_owner": "billing_operations_renovation",
              "invoice_contact": "billing+renovation@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "invoice_delivery_mode": "draft_only",
              "delivery_channel": "operator_review_queue",
              "delivery_destination": "billing+renovation@homejourney.sg",
              "reconciliation_decision": "blocked_until_delivery_receipt",
              "reconciliation_state": "manual_reconciliation_required",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run",
                "invoice_contact",
                "delivery_channel_policy"
              ],
              "missing_prerequisites": [
                "manual_finance_review",
                "delivery_receipt_store",
                "recipient_acknowledgement",
                "support_owner",
                "audit_event"
              ],
              "delivery_reconciliation_ready": false,
              "delivery_receipt_recorded": false,
              "recipient_acknowledgement_recorded": false,
              "invoice_external_send_allowed": false,
              "invoice_delivery_side_effects_allowed": false,
              "finance_provider_call_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "invoice_delivery_blocked_until_receipt_acknowledgement_and_audit_proof",
              "next_action": "Keep invoice delivery blocked until finance review, delivery receipt storage, recipient acknowledgement, support owner, and audit gates have route-backed proof."
            }
          ],
          "summary": {
            "total_verticals": 7,
            "plan_state_visible": 7,
            "billing_owner_visible": 7,
            "invoice_contact_visible": 7,
            "billing_owner_visibility_gates": 7,
            "partner_billing_table_reads_deferred": 7,
            "usage_events_present": 7,
            "customer_visible_usage_summaries": 7,
            "automatic_overage_enforcement_blocked": 7,
            "billing_owner_gate_side_effects_blocked": 7,
            "launch_ready_contracts": 7,
            "source_contract": "vertical_billing_usage_contract",
            "invoice_delivery_reconciliation_contract": "invoice_delivery_reconciliation_blocked_v1",
            "reconciliation_gates_declared": 7,
            "delivery_reconciliation_ready": 0,
            "delivery_receipts_recorded": 0,
            "recipient_acknowledgements_recorded": 0,
            "invoice_delivery_side_effects_blocked": 7,
            "finance_provider_calls_blocked": 7
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "required_scope": "platform.billing_owner_visibility.read",
            "granted_billing_scopes": [
              "platform.billing_owner_visibility.read"
            ],
            "actor_model": "api_key_automation_client",
            "data_access": "invoice_delivery_reconciliation_contract_only",
            "table_access": "no_usage_event_or_partner_billing_table_reads",
            "mutation_access": "billing_writes_deferred"
          },
          "public_safety": {
            "usage_event_table_reads_allowed": false,
            "partner_billing_table_reads_allowed": false,
            "raw_usage_event_payload_visible": false,
            "raw_payment_payload_visible": false,
            "delivery_receipt_payload_visible": false,
            "recipient_acknowledgement_payload_visible": false,
            "invoice_external_send_allowed": false,
            "invoice_delivery_side_effects_allowed": false,
            "finance_provider_call_allowed": false,
            "payment_collection_allowed": false,
            "quota_enforcement_allowed": false,
            "credential_suspension_allowed": false,
            "external_finance_calls": false,
            "billing_write_mutations_enabled": false
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "service_provider",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_invoice_delivery_reconciliation"
        }
      },
      "InvoicePaymentCollectionGatesSandbox": {
        "summary": "Read-only invoice payment collection gates for every launch vertical.",
        "value": {
          "invoice_payment_collection_gates": [
            {
              "module_id": "agent",
              "label": "Agent",
              "workspace_root": "/console/o/[orgId]/agent",
              "invoice_id": "inv-agent-billing-usage-review",
              "billing_account_org_id": "org-agent-launch-billing",
              "billing_account_client_id": "client-agent-launch-billing",
              "billing_owner": "billing_operations_agent",
              "invoice_contact": "billing+agent@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "collection_mode": "manual_review_blocked",
              "payment_provider": "deferred",
              "collection_decision": "blocked_until_finance_reconciliation_and_payment_contract",
              "collection_review_state": "manual_collection_review_required",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run"
              ],
              "missing_prerequisites": [
                "invoice_delivery_reconciliation",
                "recipient_acknowledgement",
                "manual_finance_review",
                "payment_provider_contract",
                "payment_method_policy",
                "refund_dispute_policy",
                "support_owner",
                "audit_event"
              ],
              "invoice_delivery_reconciliation_ready": false,
              "recipient_acknowledgement_recorded": false,
              "payment_collection_ready": false,
              "payment_collection_allowed": false,
              "payment_provider_call_allowed": false,
              "payment_method_payload_visible": false,
              "refund_dispute_workflow_ready": false,
              "invoice_external_send_allowed": false,
              "invoice_delivery_side_effects_allowed": false,
              "finance_provider_call_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "payment_collection_blocked_until_finance_reconciliation_and_contract_proof",
              "next_action": "Keep payment collection blocked until delivery reconciliation, recipient acknowledgement, finance review, payment-provider contract, refund/dispute, support-owner, and audit gates have mutation-safe proof."
            },
            {
              "module_id": "agency",
              "label": "Agency",
              "workspace_root": "/console/o/[orgId]/agency",
              "invoice_id": "inv-agency-billing-usage-review",
              "billing_account_org_id": "org-agency-launch-billing",
              "billing_account_client_id": "client-agency-launch-billing",
              "billing_owner": "billing_operations_agency",
              "invoice_contact": "billing+agency@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "collection_mode": "manual_review_blocked",
              "payment_provider": "deferred",
              "collection_decision": "blocked_until_finance_reconciliation_and_payment_contract",
              "collection_review_state": "manual_collection_review_required",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run"
              ],
              "missing_prerequisites": [
                "invoice_delivery_reconciliation",
                "recipient_acknowledgement",
                "manual_finance_review",
                "payment_provider_contract",
                "payment_method_policy",
                "refund_dispute_policy",
                "support_owner",
                "audit_event"
              ],
              "invoice_delivery_reconciliation_ready": false,
              "recipient_acknowledgement_recorded": false,
              "payment_collection_ready": false,
              "payment_collection_allowed": false,
              "payment_provider_call_allowed": false,
              "payment_method_payload_visible": false,
              "refund_dispute_workflow_ready": false,
              "invoice_external_send_allowed": false,
              "invoice_delivery_side_effects_allowed": false,
              "finance_provider_call_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "payment_collection_blocked_until_finance_reconciliation_and_contract_proof",
              "next_action": "Keep payment collection blocked until delivery reconciliation, recipient acknowledgement, finance review, payment-provider contract, refund/dispute, support-owner, and audit gates have mutation-safe proof."
            },
            {
              "module_id": "business",
              "label": "Business",
              "workspace_root": "/console/o/[orgId]/business/overview",
              "invoice_id": "inv-business-billing-usage-review",
              "billing_account_org_id": "org-business-launch-billing",
              "billing_account_client_id": "client-business-launch-billing",
              "billing_owner": "billing_operations_business",
              "invoice_contact": "billing+business@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "collection_mode": "manual_review_blocked",
              "payment_provider": "deferred",
              "collection_decision": "blocked_until_finance_reconciliation_and_payment_contract",
              "collection_review_state": "manual_collection_review_required",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run"
              ],
              "missing_prerequisites": [
                "invoice_delivery_reconciliation",
                "recipient_acknowledgement",
                "manual_finance_review",
                "payment_provider_contract",
                "payment_method_policy",
                "refund_dispute_policy",
                "support_owner",
                "audit_event"
              ],
              "invoice_delivery_reconciliation_ready": false,
              "recipient_acknowledgement_recorded": false,
              "payment_collection_ready": false,
              "payment_collection_allowed": false,
              "payment_provider_call_allowed": false,
              "payment_method_payload_visible": false,
              "refund_dispute_workflow_ready": false,
              "invoice_external_send_allowed": false,
              "invoice_delivery_side_effects_allowed": false,
              "finance_provider_call_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "payment_collection_blocked_until_finance_reconciliation_and_contract_proof",
              "next_action": "Keep payment collection blocked until delivery reconciliation, recipient acknowledgement, finance review, payment-provider contract, refund/dispute, support-owner, and audit gates have mutation-safe proof."
            },
            {
              "module_id": "mortgage",
              "label": "Mortgage",
              "workspace_root": "/console/o/[orgId]/mortgage",
              "invoice_id": "inv-mortgage-billing-usage-review",
              "billing_account_org_id": "org-mortgage-launch-billing",
              "billing_account_client_id": "client-mortgage-launch-billing",
              "billing_owner": "billing_operations_mortgage",
              "invoice_contact": "billing+mortgage@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "collection_mode": "manual_review_blocked",
              "payment_provider": "deferred",
              "collection_decision": "blocked_until_finance_reconciliation_and_payment_contract",
              "collection_review_state": "manual_collection_review_required",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run"
              ],
              "missing_prerequisites": [
                "invoice_delivery_reconciliation",
                "recipient_acknowledgement",
                "manual_finance_review",
                "payment_provider_contract",
                "payment_method_policy",
                "refund_dispute_policy",
                "support_owner",
                "audit_event"
              ],
              "invoice_delivery_reconciliation_ready": false,
              "recipient_acknowledgement_recorded": false,
              "payment_collection_ready": false,
              "payment_collection_allowed": false,
              "payment_provider_call_allowed": false,
              "payment_method_payload_visible": false,
              "refund_dispute_workflow_ready": false,
              "invoice_external_send_allowed": false,
              "invoice_delivery_side_effects_allowed": false,
              "finance_provider_call_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "payment_collection_blocked_until_finance_reconciliation_and_contract_proof",
              "next_action": "Keep payment collection blocked until delivery reconciliation, recipient acknowledgement, finance review, payment-provider contract, refund/dispute, support-owner, and audit gates have mutation-safe proof."
            },
            {
              "module_id": "legal",
              "label": "Legal",
              "workspace_root": "/console/o/[orgId]/legal",
              "invoice_id": "inv-legal-billing-usage-review",
              "billing_account_org_id": "org-legal-launch-billing",
              "billing_account_client_id": "client-legal-launch-billing",
              "billing_owner": "billing_operations_legal",
              "invoice_contact": "billing+legal@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "collection_mode": "manual_review_blocked",
              "payment_provider": "deferred",
              "collection_decision": "blocked_until_finance_reconciliation_and_payment_contract",
              "collection_review_state": "manual_collection_review_required",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run"
              ],
              "missing_prerequisites": [
                "invoice_delivery_reconciliation",
                "recipient_acknowledgement",
                "manual_finance_review",
                "payment_provider_contract",
                "payment_method_policy",
                "refund_dispute_policy",
                "support_owner",
                "audit_event"
              ],
              "invoice_delivery_reconciliation_ready": false,
              "recipient_acknowledgement_recorded": false,
              "payment_collection_ready": false,
              "payment_collection_allowed": false,
              "payment_provider_call_allowed": false,
              "payment_method_payload_visible": false,
              "refund_dispute_workflow_ready": false,
              "invoice_external_send_allowed": false,
              "invoice_delivery_side_effects_allowed": false,
              "finance_provider_call_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "payment_collection_blocked_until_finance_reconciliation_and_contract_proof",
              "next_action": "Keep payment collection blocked until delivery reconciliation, recipient acknowledgement, finance review, payment-provider contract, refund/dispute, support-owner, and audit gates have mutation-safe proof."
            },
            {
              "module_id": "developer",
              "label": "Developer",
              "workspace_root": "/console/o/[orgId]/developer",
              "invoice_id": "inv-developer-billing-usage-review",
              "billing_account_org_id": "org-developer-launch-billing",
              "billing_account_client_id": "client-developer-launch-billing",
              "billing_owner": "billing_operations_developer",
              "invoice_contact": "billing+developer@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "collection_mode": "manual_review_blocked",
              "payment_provider": "deferred",
              "collection_decision": "blocked_until_finance_reconciliation_and_payment_contract",
              "collection_review_state": "manual_collection_review_required",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run"
              ],
              "missing_prerequisites": [
                "invoice_delivery_reconciliation",
                "recipient_acknowledgement",
                "manual_finance_review",
                "payment_provider_contract",
                "payment_method_policy",
                "refund_dispute_policy",
                "support_owner",
                "audit_event"
              ],
              "invoice_delivery_reconciliation_ready": false,
              "recipient_acknowledgement_recorded": false,
              "payment_collection_ready": false,
              "payment_collection_allowed": false,
              "payment_provider_call_allowed": false,
              "payment_method_payload_visible": false,
              "refund_dispute_workflow_ready": false,
              "invoice_external_send_allowed": false,
              "invoice_delivery_side_effects_allowed": false,
              "finance_provider_call_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "payment_collection_blocked_until_finance_reconciliation_and_contract_proof",
              "next_action": "Keep payment collection blocked until delivery reconciliation, recipient acknowledgement, finance review, payment-provider contract, refund/dispute, support-owner, and audit gates have mutation-safe proof."
            },
            {
              "module_id": "renovation",
              "label": "Renovation",
              "workspace_root": "/console/o/[orgId]/renovation",
              "invoice_id": "inv-renovation-billing-usage-review",
              "billing_account_org_id": "org-renovation-launch-billing",
              "billing_account_client_id": "client-renovation-launch-billing",
              "billing_owner": "billing_operations_renovation",
              "invoice_contact": "billing+renovation@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "collection_mode": "manual_review_blocked",
              "payment_provider": "deferred",
              "collection_decision": "blocked_until_finance_reconciliation_and_payment_contract",
              "collection_review_state": "manual_collection_review_required",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run"
              ],
              "missing_prerequisites": [
                "invoice_delivery_reconciliation",
                "recipient_acknowledgement",
                "manual_finance_review",
                "payment_provider_contract",
                "payment_method_policy",
                "refund_dispute_policy",
                "support_owner",
                "audit_event"
              ],
              "invoice_delivery_reconciliation_ready": false,
              "recipient_acknowledgement_recorded": false,
              "payment_collection_ready": false,
              "payment_collection_allowed": false,
              "payment_provider_call_allowed": false,
              "payment_method_payload_visible": false,
              "refund_dispute_workflow_ready": false,
              "invoice_external_send_allowed": false,
              "invoice_delivery_side_effects_allowed": false,
              "finance_provider_call_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "payment_collection_blocked_until_finance_reconciliation_and_contract_proof",
              "next_action": "Keep payment collection blocked until delivery reconciliation, recipient acknowledgement, finance review, payment-provider contract, refund/dispute, support-owner, and audit gates have mutation-safe proof."
            }
          ],
          "summary": {
            "total_verticals": 7,
            "plan_state_visible": 7,
            "billing_owner_visible": 7,
            "invoice_contact_visible": 7,
            "billing_owner_visibility_gates": 7,
            "partner_billing_table_reads_deferred": 7,
            "usage_events_present": 7,
            "customer_visible_usage_summaries": 7,
            "automatic_overage_enforcement_blocked": 7,
            "billing_owner_gate_side_effects_blocked": 7,
            "launch_ready_contracts": 7,
            "source_contract": "vertical_billing_usage_contract",
            "invoice_payment_collection_contract": "invoice_payment_collection_blocked_v1",
            "payment_collection_gates_declared": 7,
            "payment_collection_ready": 0,
            "payment_collection_blocked": 7,
            "payment_provider_calls_blocked": 7,
            "payment_method_payloads_visible": 0,
            "refund_dispute_workflows_ready": 0,
            "finance_provider_calls_blocked": 7
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "required_scope": "platform.billing_owner_visibility.read",
            "granted_billing_scopes": [
              "platform.billing_owner_visibility.read"
            ],
            "actor_model": "api_key_automation_client",
            "data_access": "invoice_payment_collection_gate_contract_only",
            "table_access": "no_usage_event_or_partner_billing_table_reads",
            "mutation_access": "billing_writes_deferred"
          },
          "public_safety": {
            "usage_event_table_reads_allowed": false,
            "partner_billing_table_reads_allowed": false,
            "raw_usage_event_payload_visible": false,
            "raw_payment_payload_visible": false,
            "payment_method_payload_visible": false,
            "payment_provider_call_allowed": false,
            "payment_collection_allowed": false,
            "refund_dispute_mutations_enabled": false,
            "invoice_external_send_allowed": false,
            "invoice_delivery_side_effects_allowed": false,
            "finance_provider_call_allowed": false,
            "quota_enforcement_allowed": false,
            "credential_suspension_allowed": false,
            "external_finance_calls": false,
            "billing_write_mutations_enabled": false
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "service_provider",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_invoice_payment_collection_gates"
        }
      },
      "InvoiceCreditNoteChargebackGatesSandbox": {
        "summary": "Read-only invoice credit note chargeback gates for every launch vertical.",
        "value": {
          "invoice_credit_note_chargeback_gates": [
            {
              "module_id": "agent",
              "label": "Agent",
              "workspace_root": "/console/o/[orgId]/agent",
              "invoice_id": "inv-agent-billing-usage-review",
              "billing_account_org_id": "org-agent-launch-billing",
              "billing_account_client_id": "client-agent-launch-billing",
              "billing_owner": "billing_operations_agent",
              "invoice_contact": "billing+agent@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "credit_note_mode": "manual_credit_note_review_blocked",
              "chargeback_evidence_mode": "support_owner_evidence_review_blocked",
              "credit_note_decision": "blocked_until_policy_ledger_and_notice_proof",
              "chargeback_evidence_decision": "blocked_until_evidence_policy_support_and_audit_proof",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run",
                "payment_collection_gate_declared",
                "refund_dispute_gate_declared"
              ],
              "missing_prerequisites": [
                "credit_note_policy",
                "chargeback_evidence_policy",
                "adjustment_ledger_contract",
                "processor_credit_note_contract",
                "customer_notice_policy",
                "support_owner",
                "audit_event"
              ],
              "credit_note_workflow_ready": false,
              "chargeback_evidence_ready": false,
              "adjustment_ledger_ready": false,
              "credit_note_mutation_allowed": false,
              "chargeback_evidence_mutation_allowed": false,
              "processor_credit_note_call_allowed": false,
              "chargeback_provider_call_allowed": false,
              "payment_method_payload_visible": false,
              "credit_note_payload_visible": false,
              "chargeback_evidence_payload_visible": false,
              "customer_notice_ready": false,
              "support_owner_review_ready": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "finance_provider_call_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "credit_note_chargeback_blocked_until_policy_ledger_notice_support_and_audit_proof",
              "next_action": "Keep credit-note and chargeback evidence workflows blocked until payment collection, refund/dispute gate, credit-note policy, chargeback evidence policy, adjustment ledger, processor credit-note, customer notice, support-owner, and audit proof exist."
            },
            {
              "module_id": "agency",
              "label": "Agency",
              "workspace_root": "/console/o/[orgId]/agency",
              "invoice_id": "inv-agency-billing-usage-review",
              "billing_account_org_id": "org-agency-launch-billing",
              "billing_account_client_id": "client-agency-launch-billing",
              "billing_owner": "billing_operations_agency",
              "invoice_contact": "billing+agency@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "credit_note_mode": "manual_credit_note_review_blocked",
              "chargeback_evidence_mode": "support_owner_evidence_review_blocked",
              "credit_note_decision": "blocked_until_policy_ledger_and_notice_proof",
              "chargeback_evidence_decision": "blocked_until_evidence_policy_support_and_audit_proof",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run",
                "payment_collection_gate_declared",
                "refund_dispute_gate_declared"
              ],
              "missing_prerequisites": [
                "credit_note_policy",
                "chargeback_evidence_policy",
                "adjustment_ledger_contract",
                "processor_credit_note_contract",
                "customer_notice_policy",
                "support_owner",
                "audit_event"
              ],
              "credit_note_workflow_ready": false,
              "chargeback_evidence_ready": false,
              "adjustment_ledger_ready": false,
              "credit_note_mutation_allowed": false,
              "chargeback_evidence_mutation_allowed": false,
              "processor_credit_note_call_allowed": false,
              "chargeback_provider_call_allowed": false,
              "payment_method_payload_visible": false,
              "credit_note_payload_visible": false,
              "chargeback_evidence_payload_visible": false,
              "customer_notice_ready": false,
              "support_owner_review_ready": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "finance_provider_call_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "credit_note_chargeback_blocked_until_policy_ledger_notice_support_and_audit_proof",
              "next_action": "Keep credit-note and chargeback evidence workflows blocked until payment collection, refund/dispute gate, credit-note policy, chargeback evidence policy, adjustment ledger, processor credit-note, customer notice, support-owner, and audit proof exist."
            },
            {
              "module_id": "business",
              "label": "Business",
              "workspace_root": "/console/o/[orgId]/business/overview",
              "invoice_id": "inv-business-billing-usage-review",
              "billing_account_org_id": "org-business-launch-billing",
              "billing_account_client_id": "client-business-launch-billing",
              "billing_owner": "billing_operations_business",
              "invoice_contact": "billing+business@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "credit_note_mode": "manual_credit_note_review_blocked",
              "chargeback_evidence_mode": "support_owner_evidence_review_blocked",
              "credit_note_decision": "blocked_until_policy_ledger_and_notice_proof",
              "chargeback_evidence_decision": "blocked_until_evidence_policy_support_and_audit_proof",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run",
                "payment_collection_gate_declared",
                "refund_dispute_gate_declared"
              ],
              "missing_prerequisites": [
                "credit_note_policy",
                "chargeback_evidence_policy",
                "adjustment_ledger_contract",
                "processor_credit_note_contract",
                "customer_notice_policy",
                "support_owner",
                "audit_event"
              ],
              "credit_note_workflow_ready": false,
              "chargeback_evidence_ready": false,
              "adjustment_ledger_ready": false,
              "credit_note_mutation_allowed": false,
              "chargeback_evidence_mutation_allowed": false,
              "processor_credit_note_call_allowed": false,
              "chargeback_provider_call_allowed": false,
              "payment_method_payload_visible": false,
              "credit_note_payload_visible": false,
              "chargeback_evidence_payload_visible": false,
              "customer_notice_ready": false,
              "support_owner_review_ready": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "finance_provider_call_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "credit_note_chargeback_blocked_until_policy_ledger_notice_support_and_audit_proof",
              "next_action": "Keep credit-note and chargeback evidence workflows blocked until payment collection, refund/dispute gate, credit-note policy, chargeback evidence policy, adjustment ledger, processor credit-note, customer notice, support-owner, and audit proof exist."
            },
            {
              "module_id": "mortgage",
              "label": "Mortgage",
              "workspace_root": "/console/o/[orgId]/mortgage",
              "invoice_id": "inv-mortgage-billing-usage-review",
              "billing_account_org_id": "org-mortgage-launch-billing",
              "billing_account_client_id": "client-mortgage-launch-billing",
              "billing_owner": "billing_operations_mortgage",
              "invoice_contact": "billing+mortgage@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "credit_note_mode": "manual_credit_note_review_blocked",
              "chargeback_evidence_mode": "support_owner_evidence_review_blocked",
              "credit_note_decision": "blocked_until_policy_ledger_and_notice_proof",
              "chargeback_evidence_decision": "blocked_until_evidence_policy_support_and_audit_proof",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run",
                "payment_collection_gate_declared",
                "refund_dispute_gate_declared"
              ],
              "missing_prerequisites": [
                "credit_note_policy",
                "chargeback_evidence_policy",
                "adjustment_ledger_contract",
                "processor_credit_note_contract",
                "customer_notice_policy",
                "support_owner",
                "audit_event"
              ],
              "credit_note_workflow_ready": false,
              "chargeback_evidence_ready": false,
              "adjustment_ledger_ready": false,
              "credit_note_mutation_allowed": false,
              "chargeback_evidence_mutation_allowed": false,
              "processor_credit_note_call_allowed": false,
              "chargeback_provider_call_allowed": false,
              "payment_method_payload_visible": false,
              "credit_note_payload_visible": false,
              "chargeback_evidence_payload_visible": false,
              "customer_notice_ready": false,
              "support_owner_review_ready": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "finance_provider_call_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "credit_note_chargeback_blocked_until_policy_ledger_notice_support_and_audit_proof",
              "next_action": "Keep credit-note and chargeback evidence workflows blocked until payment collection, refund/dispute gate, credit-note policy, chargeback evidence policy, adjustment ledger, processor credit-note, customer notice, support-owner, and audit proof exist."
            },
            {
              "module_id": "legal",
              "label": "Legal",
              "workspace_root": "/console/o/[orgId]/legal",
              "invoice_id": "inv-legal-billing-usage-review",
              "billing_account_org_id": "org-legal-launch-billing",
              "billing_account_client_id": "client-legal-launch-billing",
              "billing_owner": "billing_operations_legal",
              "invoice_contact": "billing+legal@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "credit_note_mode": "manual_credit_note_review_blocked",
              "chargeback_evidence_mode": "support_owner_evidence_review_blocked",
              "credit_note_decision": "blocked_until_policy_ledger_and_notice_proof",
              "chargeback_evidence_decision": "blocked_until_evidence_policy_support_and_audit_proof",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run",
                "payment_collection_gate_declared",
                "refund_dispute_gate_declared"
              ],
              "missing_prerequisites": [
                "credit_note_policy",
                "chargeback_evidence_policy",
                "adjustment_ledger_contract",
                "processor_credit_note_contract",
                "customer_notice_policy",
                "support_owner",
                "audit_event"
              ],
              "credit_note_workflow_ready": false,
              "chargeback_evidence_ready": false,
              "adjustment_ledger_ready": false,
              "credit_note_mutation_allowed": false,
              "chargeback_evidence_mutation_allowed": false,
              "processor_credit_note_call_allowed": false,
              "chargeback_provider_call_allowed": false,
              "payment_method_payload_visible": false,
              "credit_note_payload_visible": false,
              "chargeback_evidence_payload_visible": false,
              "customer_notice_ready": false,
              "support_owner_review_ready": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "finance_provider_call_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "credit_note_chargeback_blocked_until_policy_ledger_notice_support_and_audit_proof",
              "next_action": "Keep credit-note and chargeback evidence workflows blocked until payment collection, refund/dispute gate, credit-note policy, chargeback evidence policy, adjustment ledger, processor credit-note, customer notice, support-owner, and audit proof exist."
            },
            {
              "module_id": "developer",
              "label": "Developer",
              "workspace_root": "/console/o/[orgId]/developer",
              "invoice_id": "inv-developer-billing-usage-review",
              "billing_account_org_id": "org-developer-launch-billing",
              "billing_account_client_id": "client-developer-launch-billing",
              "billing_owner": "billing_operations_developer",
              "invoice_contact": "billing+developer@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "credit_note_mode": "manual_credit_note_review_blocked",
              "chargeback_evidence_mode": "support_owner_evidence_review_blocked",
              "credit_note_decision": "blocked_until_policy_ledger_and_notice_proof",
              "chargeback_evidence_decision": "blocked_until_evidence_policy_support_and_audit_proof",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run",
                "payment_collection_gate_declared",
                "refund_dispute_gate_declared"
              ],
              "missing_prerequisites": [
                "credit_note_policy",
                "chargeback_evidence_policy",
                "adjustment_ledger_contract",
                "processor_credit_note_contract",
                "customer_notice_policy",
                "support_owner",
                "audit_event"
              ],
              "credit_note_workflow_ready": false,
              "chargeback_evidence_ready": false,
              "adjustment_ledger_ready": false,
              "credit_note_mutation_allowed": false,
              "chargeback_evidence_mutation_allowed": false,
              "processor_credit_note_call_allowed": false,
              "chargeback_provider_call_allowed": false,
              "payment_method_payload_visible": false,
              "credit_note_payload_visible": false,
              "chargeback_evidence_payload_visible": false,
              "customer_notice_ready": false,
              "support_owner_review_ready": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "finance_provider_call_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "credit_note_chargeback_blocked_until_policy_ledger_notice_support_and_audit_proof",
              "next_action": "Keep credit-note and chargeback evidence workflows blocked until payment collection, refund/dispute gate, credit-note policy, chargeback evidence policy, adjustment ledger, processor credit-note, customer notice, support-owner, and audit proof exist."
            },
            {
              "module_id": "renovation",
              "label": "Renovation",
              "workspace_root": "/console/o/[orgId]/renovation",
              "invoice_id": "inv-renovation-billing-usage-review",
              "billing_account_org_id": "org-renovation-launch-billing",
              "billing_account_client_id": "client-renovation-launch-billing",
              "billing_owner": "billing_operations_renovation",
              "invoice_contact": "billing+renovation@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "credit_note_mode": "manual_credit_note_review_blocked",
              "chargeback_evidence_mode": "support_owner_evidence_review_blocked",
              "credit_note_decision": "blocked_until_policy_ledger_and_notice_proof",
              "chargeback_evidence_decision": "blocked_until_evidence_policy_support_and_audit_proof",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run",
                "payment_collection_gate_declared",
                "refund_dispute_gate_declared"
              ],
              "missing_prerequisites": [
                "credit_note_policy",
                "chargeback_evidence_policy",
                "adjustment_ledger_contract",
                "processor_credit_note_contract",
                "customer_notice_policy",
                "support_owner",
                "audit_event"
              ],
              "credit_note_workflow_ready": false,
              "chargeback_evidence_ready": false,
              "adjustment_ledger_ready": false,
              "credit_note_mutation_allowed": false,
              "chargeback_evidence_mutation_allowed": false,
              "processor_credit_note_call_allowed": false,
              "chargeback_provider_call_allowed": false,
              "payment_method_payload_visible": false,
              "credit_note_payload_visible": false,
              "chargeback_evidence_payload_visible": false,
              "customer_notice_ready": false,
              "support_owner_review_ready": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "finance_provider_call_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "credit_note_chargeback_blocked_until_policy_ledger_notice_support_and_audit_proof",
              "next_action": "Keep credit-note and chargeback evidence workflows blocked until payment collection, refund/dispute gate, credit-note policy, chargeback evidence policy, adjustment ledger, processor credit-note, customer notice, support-owner, and audit proof exist."
            }
          ],
          "summary": {
            "total_verticals": 7,
            "plan_state_visible": 7,
            "billing_owner_visible": 7,
            "invoice_contact_visible": 7,
            "billing_owner_visibility_gates": 7,
            "partner_billing_table_reads_deferred": 7,
            "usage_events_present": 7,
            "customer_visible_usage_summaries": 7,
            "automatic_overage_enforcement_blocked": 7,
            "billing_owner_gate_side_effects_blocked": 7,
            "launch_ready_contracts": 7,
            "source_contract": "vertical_billing_usage_contract",
            "invoice_credit_note_chargeback_contract": "invoice_credit_note_chargeback_blocked_v1",
            "credit_note_chargeback_gates_declared": 7,
            "credit_note_workflows_ready": 0,
            "chargeback_evidence_ready": 0,
            "credit_note_mutations_blocked": 7,
            "chargeback_evidence_mutations_blocked": 7,
            "processor_credit_note_calls_blocked": 7,
            "chargeback_provider_calls_blocked": 7,
            "credit_note_payloads_visible": 0,
            "chargeback_evidence_payloads_visible": 0,
            "adjustment_ledgers_ready": 0,
            "support_escalations_required": 7,
            "finance_provider_calls_blocked": 7
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "required_scope": "platform.billing_owner_visibility.read",
            "granted_billing_scopes": [
              "platform.billing_owner_visibility.read"
            ],
            "actor_model": "api_key_automation_client",
            "data_access": "invoice_credit_note_chargeback_gate_contract_only",
            "table_access": "no_usage_event_or_partner_billing_table_reads",
            "mutation_access": "billing_writes_deferred"
          },
          "public_safety": {
            "usage_event_table_reads_allowed": false,
            "partner_billing_table_reads_allowed": false,
            "raw_usage_event_payload_visible": false,
            "raw_payment_payload_visible": false,
            "payment_method_payload_visible": false,
            "credit_note_payload_visible": false,
            "chargeback_evidence_payload_visible": false,
            "processor_credit_note_call_allowed": false,
            "chargeback_provider_call_allowed": false,
            "credit_note_mutation_allowed": false,
            "chargeback_evidence_mutation_allowed": false,
            "credit_note_chargeback_mutations_enabled": false,
            "invoice_external_send_allowed": false,
            "payment_collection_allowed": false,
            "finance_provider_call_allowed": false,
            "quota_enforcement_allowed": false,
            "credential_suspension_allowed": false,
            "external_finance_calls": false,
            "billing_write_mutations_enabled": false
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "service_provider",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_invoice_credit_note_chargeback_gates"
        }
      },
      "InvoiceRefundDisputeGatesSandbox": {
        "summary": "Read-only invoice refund dispute gates for every launch vertical.",
        "value": {
          "invoice_refund_dispute_gates": [
            {
              "module_id": "agent",
              "label": "Agent",
              "workspace_root": "/console/o/[orgId]/agent",
              "invoice_id": "inv-agent-billing-usage-review",
              "billing_account_org_id": "org-agent-launch-billing",
              "billing_account_client_id": "client-agent-launch-billing",
              "billing_owner": "billing_operations_agent",
              "invoice_contact": "billing+agent@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "payment_collection_mode": "payment_collection_blocked",
              "refund_mode": "manual_refund_review_blocked",
              "dispute_mode": "support_owner_review_blocked",
              "refund_decision": "blocked_until_payment_collection_and_refund_policy",
              "dispute_decision": "blocked_until_dispute_policy_and_evidence_contract",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run",
                "payment_collection_gate_declared"
              ],
              "missing_prerequisites": [
                "payment_collection_completion",
                "refund_policy",
                "dispute_policy",
                "processor_refund_contract",
                "chargeback_policy",
                "support_owner",
                "customer_notice_policy",
                "audit_event"
              ],
              "payment_collection_ready": false,
              "refund_workflow_ready": false,
              "dispute_workflow_ready": false,
              "refund_mutation_allowed": false,
              "dispute_mutation_allowed": false,
              "chargeback_mutation_allowed": false,
              "refund_provider_call_allowed": false,
              "dispute_provider_call_allowed": false,
              "chargeback_provider_call_allowed": false,
              "payment_method_payload_visible": false,
              "refund_receipt_payload_visible": false,
              "dispute_evidence_payload_visible": false,
              "customer_notice_ready": false,
              "support_owner_review_ready": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "finance_provider_call_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "refund_dispute_blocked_until_collection_policy_support_and_audit_proof",
              "next_action": "Keep refund and dispute workflows blocked until payment collection completion, refund policy, dispute policy, processor refund contract, chargeback policy, support-owner, customer-notice, and audit gates have mutation-safe proof."
            },
            {
              "module_id": "agency",
              "label": "Agency",
              "workspace_root": "/console/o/[orgId]/agency",
              "invoice_id": "inv-agency-billing-usage-review",
              "billing_account_org_id": "org-agency-launch-billing",
              "billing_account_client_id": "client-agency-launch-billing",
              "billing_owner": "billing_operations_agency",
              "invoice_contact": "billing+agency@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "payment_collection_mode": "payment_collection_blocked",
              "refund_mode": "manual_refund_review_blocked",
              "dispute_mode": "support_owner_review_blocked",
              "refund_decision": "blocked_until_payment_collection_and_refund_policy",
              "dispute_decision": "blocked_until_dispute_policy_and_evidence_contract",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run",
                "payment_collection_gate_declared"
              ],
              "missing_prerequisites": [
                "payment_collection_completion",
                "refund_policy",
                "dispute_policy",
                "processor_refund_contract",
                "chargeback_policy",
                "support_owner",
                "customer_notice_policy",
                "audit_event"
              ],
              "payment_collection_ready": false,
              "refund_workflow_ready": false,
              "dispute_workflow_ready": false,
              "refund_mutation_allowed": false,
              "dispute_mutation_allowed": false,
              "chargeback_mutation_allowed": false,
              "refund_provider_call_allowed": false,
              "dispute_provider_call_allowed": false,
              "chargeback_provider_call_allowed": false,
              "payment_method_payload_visible": false,
              "refund_receipt_payload_visible": false,
              "dispute_evidence_payload_visible": false,
              "customer_notice_ready": false,
              "support_owner_review_ready": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "finance_provider_call_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "refund_dispute_blocked_until_collection_policy_support_and_audit_proof",
              "next_action": "Keep refund and dispute workflows blocked until payment collection completion, refund policy, dispute policy, processor refund contract, chargeback policy, support-owner, customer-notice, and audit gates have mutation-safe proof."
            },
            {
              "module_id": "business",
              "label": "Business",
              "workspace_root": "/console/o/[orgId]/business/overview",
              "invoice_id": "inv-business-billing-usage-review",
              "billing_account_org_id": "org-business-launch-billing",
              "billing_account_client_id": "client-business-launch-billing",
              "billing_owner": "billing_operations_business",
              "invoice_contact": "billing+business@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "payment_collection_mode": "payment_collection_blocked",
              "refund_mode": "manual_refund_review_blocked",
              "dispute_mode": "support_owner_review_blocked",
              "refund_decision": "blocked_until_payment_collection_and_refund_policy",
              "dispute_decision": "blocked_until_dispute_policy_and_evidence_contract",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run",
                "payment_collection_gate_declared"
              ],
              "missing_prerequisites": [
                "payment_collection_completion",
                "refund_policy",
                "dispute_policy",
                "processor_refund_contract",
                "chargeback_policy",
                "support_owner",
                "customer_notice_policy",
                "audit_event"
              ],
              "payment_collection_ready": false,
              "refund_workflow_ready": false,
              "dispute_workflow_ready": false,
              "refund_mutation_allowed": false,
              "dispute_mutation_allowed": false,
              "chargeback_mutation_allowed": false,
              "refund_provider_call_allowed": false,
              "dispute_provider_call_allowed": false,
              "chargeback_provider_call_allowed": false,
              "payment_method_payload_visible": false,
              "refund_receipt_payload_visible": false,
              "dispute_evidence_payload_visible": false,
              "customer_notice_ready": false,
              "support_owner_review_ready": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "finance_provider_call_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "refund_dispute_blocked_until_collection_policy_support_and_audit_proof",
              "next_action": "Keep refund and dispute workflows blocked until payment collection completion, refund policy, dispute policy, processor refund contract, chargeback policy, support-owner, customer-notice, and audit gates have mutation-safe proof."
            },
            {
              "module_id": "mortgage",
              "label": "Mortgage",
              "workspace_root": "/console/o/[orgId]/mortgage",
              "invoice_id": "inv-mortgage-billing-usage-review",
              "billing_account_org_id": "org-mortgage-launch-billing",
              "billing_account_client_id": "client-mortgage-launch-billing",
              "billing_owner": "billing_operations_mortgage",
              "invoice_contact": "billing+mortgage@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "payment_collection_mode": "payment_collection_blocked",
              "refund_mode": "manual_refund_review_blocked",
              "dispute_mode": "support_owner_review_blocked",
              "refund_decision": "blocked_until_payment_collection_and_refund_policy",
              "dispute_decision": "blocked_until_dispute_policy_and_evidence_contract",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run",
                "payment_collection_gate_declared"
              ],
              "missing_prerequisites": [
                "payment_collection_completion",
                "refund_policy",
                "dispute_policy",
                "processor_refund_contract",
                "chargeback_policy",
                "support_owner",
                "customer_notice_policy",
                "audit_event"
              ],
              "payment_collection_ready": false,
              "refund_workflow_ready": false,
              "dispute_workflow_ready": false,
              "refund_mutation_allowed": false,
              "dispute_mutation_allowed": false,
              "chargeback_mutation_allowed": false,
              "refund_provider_call_allowed": false,
              "dispute_provider_call_allowed": false,
              "chargeback_provider_call_allowed": false,
              "payment_method_payload_visible": false,
              "refund_receipt_payload_visible": false,
              "dispute_evidence_payload_visible": false,
              "customer_notice_ready": false,
              "support_owner_review_ready": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "finance_provider_call_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "refund_dispute_blocked_until_collection_policy_support_and_audit_proof",
              "next_action": "Keep refund and dispute workflows blocked until payment collection completion, refund policy, dispute policy, processor refund contract, chargeback policy, support-owner, customer-notice, and audit gates have mutation-safe proof."
            },
            {
              "module_id": "legal",
              "label": "Legal",
              "workspace_root": "/console/o/[orgId]/legal",
              "invoice_id": "inv-legal-billing-usage-review",
              "billing_account_org_id": "org-legal-launch-billing",
              "billing_account_client_id": "client-legal-launch-billing",
              "billing_owner": "billing_operations_legal",
              "invoice_contact": "billing+legal@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "payment_collection_mode": "payment_collection_blocked",
              "refund_mode": "manual_refund_review_blocked",
              "dispute_mode": "support_owner_review_blocked",
              "refund_decision": "blocked_until_payment_collection_and_refund_policy",
              "dispute_decision": "blocked_until_dispute_policy_and_evidence_contract",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run",
                "payment_collection_gate_declared"
              ],
              "missing_prerequisites": [
                "payment_collection_completion",
                "refund_policy",
                "dispute_policy",
                "processor_refund_contract",
                "chargeback_policy",
                "support_owner",
                "customer_notice_policy",
                "audit_event"
              ],
              "payment_collection_ready": false,
              "refund_workflow_ready": false,
              "dispute_workflow_ready": false,
              "refund_mutation_allowed": false,
              "dispute_mutation_allowed": false,
              "chargeback_mutation_allowed": false,
              "refund_provider_call_allowed": false,
              "dispute_provider_call_allowed": false,
              "chargeback_provider_call_allowed": false,
              "payment_method_payload_visible": false,
              "refund_receipt_payload_visible": false,
              "dispute_evidence_payload_visible": false,
              "customer_notice_ready": false,
              "support_owner_review_ready": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "finance_provider_call_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "refund_dispute_blocked_until_collection_policy_support_and_audit_proof",
              "next_action": "Keep refund and dispute workflows blocked until payment collection completion, refund policy, dispute policy, processor refund contract, chargeback policy, support-owner, customer-notice, and audit gates have mutation-safe proof."
            },
            {
              "module_id": "developer",
              "label": "Developer",
              "workspace_root": "/console/o/[orgId]/developer",
              "invoice_id": "inv-developer-billing-usage-review",
              "billing_account_org_id": "org-developer-launch-billing",
              "billing_account_client_id": "client-developer-launch-billing",
              "billing_owner": "billing_operations_developer",
              "invoice_contact": "billing+developer@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "payment_collection_mode": "payment_collection_blocked",
              "refund_mode": "manual_refund_review_blocked",
              "dispute_mode": "support_owner_review_blocked",
              "refund_decision": "blocked_until_payment_collection_and_refund_policy",
              "dispute_decision": "blocked_until_dispute_policy_and_evidence_contract",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run",
                "payment_collection_gate_declared"
              ],
              "missing_prerequisites": [
                "payment_collection_completion",
                "refund_policy",
                "dispute_policy",
                "processor_refund_contract",
                "chargeback_policy",
                "support_owner",
                "customer_notice_policy",
                "audit_event"
              ],
              "payment_collection_ready": false,
              "refund_workflow_ready": false,
              "dispute_workflow_ready": false,
              "refund_mutation_allowed": false,
              "dispute_mutation_allowed": false,
              "chargeback_mutation_allowed": false,
              "refund_provider_call_allowed": false,
              "dispute_provider_call_allowed": false,
              "chargeback_provider_call_allowed": false,
              "payment_method_payload_visible": false,
              "refund_receipt_payload_visible": false,
              "dispute_evidence_payload_visible": false,
              "customer_notice_ready": false,
              "support_owner_review_ready": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "finance_provider_call_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "refund_dispute_blocked_until_collection_policy_support_and_audit_proof",
              "next_action": "Keep refund and dispute workflows blocked until payment collection completion, refund policy, dispute policy, processor refund contract, chargeback policy, support-owner, customer-notice, and audit gates have mutation-safe proof."
            },
            {
              "module_id": "renovation",
              "label": "Renovation",
              "workspace_root": "/console/o/[orgId]/renovation",
              "invoice_id": "inv-renovation-billing-usage-review",
              "billing_account_org_id": "org-renovation-launch-billing",
              "billing_account_client_id": "client-renovation-launch-billing",
              "billing_owner": "billing_operations_renovation",
              "invoice_contact": "billing+renovation@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "payment_collection_mode": "payment_collection_blocked",
              "refund_mode": "manual_refund_review_blocked",
              "dispute_mode": "support_owner_review_blocked",
              "refund_decision": "blocked_until_payment_collection_and_refund_policy",
              "dispute_decision": "blocked_until_dispute_policy_and_evidence_contract",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "invoice_dry_run",
                "payment_collection_gate_declared"
              ],
              "missing_prerequisites": [
                "payment_collection_completion",
                "refund_policy",
                "dispute_policy",
                "processor_refund_contract",
                "chargeback_policy",
                "support_owner",
                "customer_notice_policy",
                "audit_event"
              ],
              "payment_collection_ready": false,
              "refund_workflow_ready": false,
              "dispute_workflow_ready": false,
              "refund_mutation_allowed": false,
              "dispute_mutation_allowed": false,
              "chargeback_mutation_allowed": false,
              "refund_provider_call_allowed": false,
              "dispute_provider_call_allowed": false,
              "chargeback_provider_call_allowed": false,
              "payment_method_payload_visible": false,
              "refund_receipt_payload_visible": false,
              "dispute_evidence_payload_visible": false,
              "customer_notice_ready": false,
              "support_owner_review_ready": false,
              "invoice_external_send_allowed": false,
              "payment_collection_allowed": false,
              "finance_provider_call_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "refund_dispute_blocked_until_collection_policy_support_and_audit_proof",
              "next_action": "Keep refund and dispute workflows blocked until payment collection completion, refund policy, dispute policy, processor refund contract, chargeback policy, support-owner, customer-notice, and audit gates have mutation-safe proof."
            }
          ],
          "summary": {
            "total_verticals": 7,
            "plan_state_visible": 7,
            "billing_owner_visible": 7,
            "invoice_contact_visible": 7,
            "billing_owner_visibility_gates": 7,
            "partner_billing_table_reads_deferred": 7,
            "usage_events_present": 7,
            "customer_visible_usage_summaries": 7,
            "automatic_overage_enforcement_blocked": 7,
            "billing_owner_gate_side_effects_blocked": 7,
            "launch_ready_contracts": 7,
            "source_contract": "vertical_billing_usage_contract",
            "invoice_refund_dispute_contract": "invoice_refund_dispute_blocked_v1",
            "refund_dispute_gates_declared": 7,
            "refund_workflows_ready": 0,
            "dispute_workflows_ready": 0,
            "refund_dispute_mutations_blocked": 7,
            "refund_provider_calls_blocked": 7,
            "dispute_provider_calls_blocked": 7,
            "chargeback_provider_calls_blocked": 7,
            "payment_method_payloads_visible": 0,
            "refund_receipt_payloads_visible": 0,
            "dispute_evidence_payloads_visible": 0,
            "support_escalations_required": 7,
            "finance_provider_calls_blocked": 7
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "required_scope": "platform.billing_owner_visibility.read",
            "granted_billing_scopes": [
              "platform.billing_owner_visibility.read"
            ],
            "actor_model": "api_key_automation_client",
            "data_access": "invoice_refund_dispute_gate_contract_only",
            "table_access": "no_usage_event_or_partner_billing_table_reads",
            "mutation_access": "billing_writes_deferred"
          },
          "public_safety": {
            "usage_event_table_reads_allowed": false,
            "partner_billing_table_reads_allowed": false,
            "raw_usage_event_payload_visible": false,
            "raw_payment_payload_visible": false,
            "payment_method_payload_visible": false,
            "refund_receipt_payload_visible": false,
            "dispute_evidence_payload_visible": false,
            "refund_provider_call_allowed": false,
            "dispute_provider_call_allowed": false,
            "chargeback_provider_call_allowed": false,
            "refund_mutation_allowed": false,
            "dispute_mutation_allowed": false,
            "chargeback_mutation_allowed": false,
            "refund_dispute_mutations_enabled": false,
            "invoice_external_send_allowed": false,
            "payment_collection_allowed": false,
            "finance_provider_call_allowed": false,
            "quota_enforcement_allowed": false,
            "credential_suspension_allowed": false,
            "external_finance_calls": false,
            "billing_write_mutations_enabled": false
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "service_provider",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_invoice_refund_dispute_gates"
        }
      },
      "InvoiceSendGatesSandbox": {
        "summary": "Read-only invoice-send gates for every launch vertical.",
        "value": {
          "invoice_send_gates": [
            {
              "module_id": "agent",
              "label": "Agent",
              "workspace_root": "/console/o/[orgId]/agent",
              "invoice_id": "inv-agent-billing-usage-review",
              "billing_account_org_id": "org-agent-launch-billing",
              "billing_account_client_id": "client-agent-launch-billing",
              "billing_owner": "billing_operations_agent",
              "invoice_contact": "billing+agent@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "invoice_delivery_mode": "draft_only",
              "send_decision": "blocked_until_finance_review",
              "send_review_state": "manual_review_required",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "billing_owner",
                "invoice_contact",
                "approved_usage_rollup",
                "draft_invoice_preview"
              ],
              "missing_prerequisites": [
                "manual_finance_review",
                "external_finance_provider_contract",
                "delivery_reconciliation",
                "payment_collection_gate",
                "support_owner",
                "audit_event"
              ],
              "invoice_external_send_allowed": false,
              "invoice_send_side_effects_allowed": false,
              "finance_provider_call_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "external_invoice_send_blocked_until_finance_review_and_reconciliation",
              "next_action": "Keep invoice sends blocked until finance review, delivery reconciliation, payment collection, support, and audit gates have route-backed proof."
            },
            {
              "module_id": "agency",
              "label": "Agency",
              "workspace_root": "/console/o/[orgId]/agency",
              "invoice_id": "inv-agency-billing-usage-review",
              "billing_account_org_id": "org-agency-launch-billing",
              "billing_account_client_id": "client-agency-launch-billing",
              "billing_owner": "billing_operations_agency",
              "invoice_contact": "billing+agency@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "invoice_delivery_mode": "draft_only",
              "send_decision": "blocked_until_finance_review",
              "send_review_state": "manual_review_required",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "billing_owner",
                "invoice_contact",
                "approved_usage_rollup",
                "draft_invoice_preview"
              ],
              "missing_prerequisites": [
                "manual_finance_review",
                "external_finance_provider_contract",
                "delivery_reconciliation",
                "payment_collection_gate",
                "support_owner",
                "audit_event"
              ],
              "invoice_external_send_allowed": false,
              "invoice_send_side_effects_allowed": false,
              "finance_provider_call_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "external_invoice_send_blocked_until_finance_review_and_reconciliation",
              "next_action": "Keep invoice sends blocked until finance review, delivery reconciliation, payment collection, support, and audit gates have route-backed proof."
            },
            {
              "module_id": "business",
              "label": "Business",
              "workspace_root": "/console/o/[orgId]/business/overview",
              "invoice_id": "inv-business-billing-usage-review",
              "billing_account_org_id": "org-business-launch-billing",
              "billing_account_client_id": "client-business-launch-billing",
              "billing_owner": "billing_operations_business",
              "invoice_contact": "billing+business@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "invoice_delivery_mode": "draft_only",
              "send_decision": "blocked_until_finance_review",
              "send_review_state": "manual_review_required",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "billing_owner",
                "invoice_contact",
                "approved_usage_rollup",
                "draft_invoice_preview"
              ],
              "missing_prerequisites": [
                "manual_finance_review",
                "external_finance_provider_contract",
                "delivery_reconciliation",
                "payment_collection_gate",
                "support_owner",
                "audit_event"
              ],
              "invoice_external_send_allowed": false,
              "invoice_send_side_effects_allowed": false,
              "finance_provider_call_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "external_invoice_send_blocked_until_finance_review_and_reconciliation",
              "next_action": "Keep invoice sends blocked until finance review, delivery reconciliation, payment collection, support, and audit gates have route-backed proof."
            },
            {
              "module_id": "mortgage",
              "label": "Mortgage",
              "workspace_root": "/console/o/[orgId]/mortgage",
              "invoice_id": "inv-mortgage-billing-usage-review",
              "billing_account_org_id": "org-mortgage-launch-billing",
              "billing_account_client_id": "client-mortgage-launch-billing",
              "billing_owner": "billing_operations_mortgage",
              "invoice_contact": "billing+mortgage@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "invoice_delivery_mode": "draft_only",
              "send_decision": "blocked_until_finance_review",
              "send_review_state": "manual_review_required",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "billing_owner",
                "invoice_contact",
                "approved_usage_rollup",
                "draft_invoice_preview"
              ],
              "missing_prerequisites": [
                "manual_finance_review",
                "external_finance_provider_contract",
                "delivery_reconciliation",
                "payment_collection_gate",
                "support_owner",
                "audit_event"
              ],
              "invoice_external_send_allowed": false,
              "invoice_send_side_effects_allowed": false,
              "finance_provider_call_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "external_invoice_send_blocked_until_finance_review_and_reconciliation",
              "next_action": "Keep invoice sends blocked until finance review, delivery reconciliation, payment collection, support, and audit gates have route-backed proof."
            },
            {
              "module_id": "legal",
              "label": "Legal",
              "workspace_root": "/console/o/[orgId]/legal",
              "invoice_id": "inv-legal-billing-usage-review",
              "billing_account_org_id": "org-legal-launch-billing",
              "billing_account_client_id": "client-legal-launch-billing",
              "billing_owner": "billing_operations_legal",
              "invoice_contact": "billing+legal@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "invoice_delivery_mode": "draft_only",
              "send_decision": "blocked_until_finance_review",
              "send_review_state": "manual_review_required",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "billing_owner",
                "invoice_contact",
                "approved_usage_rollup",
                "draft_invoice_preview"
              ],
              "missing_prerequisites": [
                "manual_finance_review",
                "external_finance_provider_contract",
                "delivery_reconciliation",
                "payment_collection_gate",
                "support_owner",
                "audit_event"
              ],
              "invoice_external_send_allowed": false,
              "invoice_send_side_effects_allowed": false,
              "finance_provider_call_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "external_invoice_send_blocked_until_finance_review_and_reconciliation",
              "next_action": "Keep invoice sends blocked until finance review, delivery reconciliation, payment collection, support, and audit gates have route-backed proof."
            },
            {
              "module_id": "developer",
              "label": "Developer",
              "workspace_root": "/console/o/[orgId]/developer",
              "invoice_id": "inv-developer-billing-usage-review",
              "billing_account_org_id": "org-developer-launch-billing",
              "billing_account_client_id": "client-developer-launch-billing",
              "billing_owner": "billing_operations_developer",
              "invoice_contact": "billing+developer@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "invoice_delivery_mode": "draft_only",
              "send_decision": "blocked_until_finance_review",
              "send_review_state": "manual_review_required",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "billing_owner",
                "invoice_contact",
                "approved_usage_rollup",
                "draft_invoice_preview"
              ],
              "missing_prerequisites": [
                "manual_finance_review",
                "external_finance_provider_contract",
                "delivery_reconciliation",
                "payment_collection_gate",
                "support_owner",
                "audit_event"
              ],
              "invoice_external_send_allowed": false,
              "invoice_send_side_effects_allowed": false,
              "finance_provider_call_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "external_invoice_send_blocked_until_finance_review_and_reconciliation",
              "next_action": "Keep invoice sends blocked until finance review, delivery reconciliation, payment collection, support, and audit gates have route-backed proof."
            },
            {
              "module_id": "renovation",
              "label": "Renovation",
              "workspace_root": "/console/o/[orgId]/renovation",
              "invoice_id": "inv-renovation-billing-usage-review",
              "billing_account_org_id": "org-renovation-launch-billing",
              "billing_account_client_id": "client-renovation-launch-billing",
              "billing_owner": "billing_operations_renovation",
              "invoice_contact": "billing+renovation@homejourney.sg",
              "billing_period": "2026-07",
              "currency": "SGD",
              "invoice_state": "review_required",
              "payment_terms": "manual_review_before_send",
              "invoice_delivery_mode": "draft_only",
              "send_decision": "blocked_until_finance_review",
              "send_review_state": "manual_review_required",
              "required_scope": "platform.billing_owner_visibility.read",
              "satisfied_prerequisites": [
                "billing_owner",
                "invoice_contact",
                "approved_usage_rollup",
                "draft_invoice_preview"
              ],
              "missing_prerequisites": [
                "manual_finance_review",
                "external_finance_provider_contract",
                "delivery_reconciliation",
                "payment_collection_gate",
                "support_owner",
                "audit_event"
              ],
              "invoice_external_send_allowed": false,
              "invoice_send_side_effects_allowed": false,
              "finance_provider_call_allowed": false,
              "payment_collection_allowed": false,
              "quota_enforcement_allowed": false,
              "credential_suspension_allowed": false,
              "billing_write_mutations_enabled": false,
              "proof_command": "pnpm exec vitest run --config apps/web/vitest.config.ts apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts apps/web/lib/platform/__tests__/usage.test.ts",
              "evidence_path": "apps/web/lib/platform/__tests__/vertical-billing-usage-map.test.ts",
              "blocker": "external_invoice_send_blocked_until_finance_review_and_reconciliation",
              "next_action": "Keep invoice sends blocked until finance review, delivery reconciliation, payment collection, support, and audit gates have route-backed proof."
            }
          ],
          "summary": {
            "total_verticals": 7,
            "plan_state_visible": 7,
            "billing_owner_visible": 7,
            "invoice_contact_visible": 7,
            "billing_owner_visibility_gates": 7,
            "partner_billing_table_reads_deferred": 7,
            "usage_events_present": 7,
            "customer_visible_usage_summaries": 7,
            "automatic_overage_enforcement_blocked": 7,
            "billing_owner_gate_side_effects_blocked": 7,
            "launch_ready_contracts": 7,
            "source_contract": "vertical_billing_usage_contract",
            "invoice_send_gate_contract": "external_invoice_send_blocked_v1",
            "invoice_send_gates_declared": 7,
            "invoice_send_gates_blocked": 7,
            "invoice_dry_runs_ready": 7,
            "finance_provider_calls_blocked": 7,
            "payment_collection_blocked": 7,
            "quota_enforcement_blocked": 7,
            "credential_suspension_blocked": 7
          },
          "authorization": {
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "required_scope": "platform.billing_owner_visibility.read",
            "granted_billing_scopes": [
              "platform.billing_owner_visibility.read"
            ],
            "actor_model": "api_key_automation_client",
            "data_access": "invoice_send_gate_contract_only",
            "table_access": "no_usage_event_or_partner_billing_table_reads",
            "mutation_access": "billing_writes_deferred"
          },
          "public_safety": {
            "usage_event_table_reads_allowed": false,
            "partner_billing_table_reads_allowed": false,
            "raw_usage_event_payload_visible": false,
            "raw_payment_payload_visible": false,
            "invoice_external_send_allowed": false,
            "invoice_send_side_effects_allowed": false,
            "finance_provider_call_allowed": false,
            "payment_collection_allowed": false,
            "quota_enforcement_allowed": false,
            "credential_suspension_allowed": false,
            "external_finance_calls": false,
            "billing_write_mutations_enabled": false
          },
          "principal": {
            "type": "automation_client",
            "actor_type": "api_key",
            "environment": "sandbox",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "organization_type": "service_provider",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "api_key_id": "00000000-0000-4000-8000-000000000201",
            "user_id": null,
            "subject_user_id": null,
            "agent_id": null,
            "subject_agent_id": null,
            "agency_id": null,
            "team_id": null,
            "delegation_id": null,
            "delegated": false
          },
          "livemode": false,
          "request_id": "req_invoice_send_gates"
        }
      },
      "WebhookEndpointListSandbox": {
        "summary": "Sandbox webhook endpoint list response",
        "value": {
          "endpoints": [
            {
              "id": "00000000-0000-4000-8000-000000000301",
              "organization_id": "00000000-0000-4000-8000-000000000001",
              "client_id": "00000000-0000-4000-8000-000000000101",
              "environment": "sandbox",
              "url": "https://partner.example/webhooks/homejourney",
              "description": "Partner sandbox endpoint",
              "subscribed_events": [
                "listing.updated",
                "viewing.status_changed"
              ],
              "signing_secret_prefix": "whsec_demo",
              "status": "active",
              "last_delivery_at": null,
              "failure_count": 0,
              "created_at": "2026-05-15T00:00:00.000Z",
              "updated_at": "2026-05-15T00:00:00.000Z"
            }
          ],
          "pagination": {
            "limit": 50,
            "next_cursor": null
          },
          "retry_policy": {
            "policy_version": "platform_webhook_retry_policy.v1",
            "automatic_retries_enabled": false,
            "automatic_dispatch": "deferred_until_queue_dispatcher",
            "outbox_max_attempts": 10,
            "manual_replay": "sandbox_only",
            "replay_idempotency": "required",
            "live_replay_supported": false,
            "payload_retention_required_for_replay": true
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "WebhookEndpointDetailSandbox": {
        "summary": "Sandbox webhook endpoint detail response",
        "value": {
          "endpoint": {
            "id": "00000000-0000-4000-8000-000000000301",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "environment": "sandbox",
            "url": "https://partner.example/webhooks/homejourney",
            "description": "Partner sandbox endpoint",
            "subscribed_events": [
              "listing.updated",
              "viewing.status_changed"
            ],
            "signing_secret_prefix": "whsec_demo",
            "status": "active",
            "last_delivery_at": null,
            "failure_count": 0,
            "created_at": "2026-05-15T00:00:00.000Z",
            "updated_at": "2026-05-15T00:00:00.000Z"
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "WebhookEndpointCreatedSandbox": {
        "summary": "Sandbox webhook endpoint create response",
        "value": {
          "endpoint": {
            "id": "00000000-0000-4000-8000-000000000301",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "environment": "sandbox",
            "url": "https://partner.example/webhooks/homejourney",
            "description": "Partner sandbox endpoint",
            "subscribed_events": [
              "listing.updated",
              "viewing.status_changed"
            ],
            "signing_secret_prefix": "whsec_example",
            "status": "active",
            "last_delivery_at": null,
            "failure_count": 0,
            "created_at": "2026-05-15T00:00:00.000Z",
            "updated_at": "2026-05-15T00:00:00.000Z"
          },
          "signing_secret": "whsec_example_only_visible_once",
          "signing_secret_revealed": true,
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "WebhookEndpointUpdatedSandbox": {
        "summary": "Sandbox webhook endpoint update response",
        "value": {
          "endpoint": {
            "id": "00000000-0000-4000-8000-000000000301",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "environment": "sandbox",
            "url": "https://partner.example/webhooks/updated",
            "description": null,
            "subscribed_events": [
              "listing.updated",
              "viewing.status_changed"
            ],
            "signing_secret_prefix": "whsec_demo",
            "status": "disabled",
            "last_delivery_at": null,
            "failure_count": 0,
            "created_at": "2026-05-15T00:00:00.000Z",
            "updated_at": "2026-05-15T00:02:00.000Z"
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "WebhookEndpointRevokedSandbox": {
        "summary": "Sandbox webhook endpoint revoke response",
        "value": {
          "endpoint": {
            "id": "00000000-0000-4000-8000-000000000301",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "environment": "sandbox",
            "url": "https://partner.example/webhooks/homejourney",
            "description": "Partner sandbox endpoint",
            "subscribed_events": [
              "listing.updated",
              "viewing.status_changed"
            ],
            "signing_secret_prefix": "whsec_demo",
            "status": "revoked",
            "last_delivery_at": null,
            "failure_count": 0,
            "created_at": "2026-05-15T00:00:00.000Z",
            "updated_at": "2026-05-15T00:01:00.000Z"
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "WebhookDeliveryListSandbox": {
        "summary": "Sandbox webhook delivery list response",
        "value": {
          "deliveries": [
            {
              "id": "00000000-0000-4000-8000-000000000401",
              "endpoint_id": "00000000-0000-4000-8000-000000000301",
              "organization_id": "00000000-0000-4000-8000-000000000001",
              "client_id": "00000000-0000-4000-8000-000000000101",
              "environment": "sandbox",
              "event_type": "listing.updated",
              "event_id": "evt_123",
              "delivery_status": "failed",
              "attempt_count": 1,
              "next_attempt_at": null,
              "response_status": 500,
              "error_code": "http_non_ok",
              "request_id": "req_source_01hjp",
              "payload_redaction_version": 1,
              "metadata": {
                "endpoint_host": "partner.example",
                "payload_bytes": 512,
                "payload_too_large": false,
                "payload_redaction_version": 1
              },
              "created_at": "2026-05-15T00:00:00.000Z",
              "updated_at": "2026-05-15T00:00:05.000Z"
            }
          ],
          "pagination": {
            "limit": 50,
            "next_cursor": null
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "WebhookDeliveryDetailSandbox": {
        "summary": "Sandbox webhook delivery detail response",
        "value": {
          "delivery": {
            "id": "00000000-0000-4000-8000-000000000401",
            "endpoint_id": "00000000-0000-4000-8000-000000000301",
            "organization_id": "00000000-0000-4000-8000-000000000001",
            "client_id": "00000000-0000-4000-8000-000000000101",
            "environment": "sandbox",
            "event_type": "listing.updated",
            "event_id": "evt_123",
            "delivery_status": "failed",
            "attempt_count": 1,
            "next_attempt_at": null,
            "response_status": 500,
            "error_code": "http_non_ok",
            "request_id": "req_source_01hjp",
            "payload_redaction_version": 1,
            "metadata": {
              "endpoint_host": "partner.example",
              "payload_bytes": 512,
              "payload_too_large": false,
              "payload_redaction_version": 1
            },
            "created_at": "2026-05-15T00:00:00.000Z",
            "updated_at": "2026-05-15T00:00:05.000Z"
          },
          "retry_policy": {
            "policy_version": "platform_webhook_retry_policy.v1",
            "automatic_retries_enabled": false,
            "automatic_dispatch": "deferred_until_queue_dispatcher",
            "outbox_max_attempts": 10,
            "manual_replay": "sandbox_only",
            "replay_idempotency": "required",
            "live_replay_supported": false,
            "payload_retention_required_for_replay": true
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "WebhookDeliveryReplaySandbox": {
        "summary": "Sandbox webhook delivery replay enqueue response",
        "value": {
          "replay": {
            "delivery_id": "00000000-0000-4000-8000-000000000401",
            "source_event_id": "evt_123",
            "replay_event_id": "evt_replay_0000000000004000_sha256idem",
            "event_type": "listing.updated",
            "outbox_id": "00000000-0000-4000-8000-000000009702",
            "dispatch_status": "pending",
            "inserted": true,
            "payload_redaction_version": 1,
            "replay_status": "queued",
            "delivery_requeued": true,
            "webhook_sent": false,
            "payload_returned": false,
            "response_body_returned": false,
            "response_headers_returned": false,
            "signing_secret_returned": false
          },
          "retry_policy": {
            "policy_version": "platform_webhook_retry_policy.v1",
            "automatic_retries_enabled": false,
            "automatic_dispatch": "deferred_until_queue_dispatcher",
            "outbox_max_attempts": 10,
            "manual_replay": "sandbox_only",
            "replay_idempotency": "required",
            "live_replay_supported": false,
            "payload_retention_required_for_replay": true
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "WebhookTestEventSandbox": {
        "summary": "Sandbox webhook test event enqueue response",
        "value": {
          "webhook_event": {
            "id": "evt_test_123",
            "event_type": "listing.updated",
            "created_at": "2026-05-15T01:02:03.000Z",
            "outbox_id": "00000000-0000-4000-8000-000000009701",
            "dispatch_status": "pending",
            "inserted": true,
            "payload_redaction_version": 1
          },
          "livemode": false,
          "request_id": "req_01hjp_slice1"
        }
      },
      "PlatformManagedWebhookSubscriptionSandbox": {
        "summary": "Managed sandbox subscription with redacted secret metadata",
        "value": {
          "subscription": {
            "id": "00000000-0000-4000-8000-000000000701",
            "name": "terraform-primary",
            "environment": "sandbox",
            "url": "https://partner.example/webhooks/homejourney",
            "description": "Managed by Terraform",
            "event_types": [
              "viewing.requested"
            ],
            "status": "active",
            "secret_version": 1,
            "secret_prefix": "partner_secret_ab",
            "secret_returned": false,
            "created_at": "2026-07-13T00:00:00.000Z",
            "updated_at": "2026-07-13T00:00:00.000Z"
          },
          "livemode": false,
          "request_id": "req_managed_webhook_01"
        }
      },
      "PlatformManagedWebhookDeliverySandbox": {
        "summary": "Redacted managed delivery evidence",
        "value": {
          "delivery": {
            "id": "00000000-0000-4000-8000-000000000901",
            "subscription_id": "00000000-0000-4000-8000-000000000701",
            "source_event_id": "evt_viewing_001",
            "event_type": "viewing.requested",
            "environment": "sandbox",
            "intent_kind": "original",
            "subscription_sequence": 1,
            "dispatch_status": "pending",
            "attempt_count": 0,
            "last_response_status": null,
            "last_error_code": null,
            "next_attempt_at": "2026-07-13T00:00:00.000Z",
            "payload_returned": false,
            "response_body_returned": false,
            "response_headers_returned": false,
            "secret_returned": false,
            "created_at": "2026-07-13T00:00:00.000Z",
            "updated_at": "2026-07-13T00:00:00.000Z"
          },
          "livemode": false,
          "request_id": "req_managed_delivery_01"
        }
      },
      "CurrentWorkspaceSandbox": {
        "summary": "Logical workspace with its exact sandbox incarnation and module states",
        "value": {
          "workspace": {
            "id": "00000000-0000-4000-8000-000000000301",
            "display_name": "Sandbox Platform Demo",
            "organization_type": "partner",
            "status": "active"
          },
          "organization_incarnation": {
            "id": "00000000-0000-4000-8000-000000000001",
            "slug": "sandbox-platform-demo",
            "environment": "sandbox",
            "status": "active"
          },
          "modules": [
            {
              "id": "00000000-0000-4000-8000-000000000401",
              "module_key": "platform_api",
              "status": "active",
              "terms_version": "platform-api-v1"
            }
          ],
          "livemode": false,
          "request_id": "req_01hjp_workspace"
        }
      }
    },
    "responses": {
      "BadRequest": {
        "description": "Request validation failed.",
        "headers": {
          "X-Request-Id": {
            "$ref": "#/components/headers/RequestId"
          }
        },
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            },
            "examples": {
              "invalidRequest": {
                "$ref": "#/components/examples/InvalidRequestProblem"
              }
            }
          }
        }
      },
      "Unauthorized": {
        "description": "Missing or invalid platform API key.",
        "headers": {
          "X-Request-Id": {
            "$ref": "#/components/headers/RequestId"
          }
        },
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            }
          }
        }
      },
      "Forbidden": {
        "description": "Credential, environment, or scope is not allowed.",
        "headers": {
          "X-Request-Id": {
            "$ref": "#/components/headers/RequestId"
          }
        },
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            }
          }
        }
      },
      "NotFound": {
        "description": "Platform API feature or resource is not available.",
        "headers": {
          "X-Request-Id": {
            "$ref": "#/components/headers/RequestId"
          }
        },
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            },
            "examples": {
              "listingNotFound": {
                "$ref": "#/components/examples/ListingNotFoundProblem"
              },
              "siteNotFound": {
                "$ref": "#/components/examples/PlatformSiteNotFoundProblem"
              },
              "developerProjectNotFound": {
                "$ref": "#/components/examples/PlatformDeveloperProjectNotFoundProblem"
              },
              "viewingRequestNotFound": {
                "$ref": "#/components/examples/ViewingRequestNotFoundProblem"
              },
              "transactionMatterNotFound": {
                "$ref": "#/components/examples/TransactionMatterNotFoundProblem"
              },
              "webhookEndpointNotFound": {
                "$ref": "#/components/examples/WebhookEndpointNotFoundProblem"
              }
            }
          }
        }
      },
      "Conflict": {
        "description": "Idempotency key is in progress or conflicts with an earlier request body.",
        "headers": {
          "X-Request-Id": {
            "$ref": "#/components/headers/RequestId"
          }
        },
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            },
            "examples": {
              "idempotencyConflict": {
                "$ref": "#/components/examples/IdempotencyConflictProblem"
              },
              "idempotencyInProgress": {
                "$ref": "#/components/examples/IdempotencyInProgressProblem"
              }
            }
          }
        }
      },
      "UnprocessableEntity": {
        "description": "The request is well formed but cannot be accepted, such as a salesperson who is not current or not under the agency licence.",
        "headers": {
          "X-Request-Id": {
            "$ref": "#/components/headers/RequestId"
          }
        },
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            }
          }
        }
      },
      "TooManyRequests": {
        "description": "Rate limit exceeded.",
        "headers": {
          "X-Request-Id": {
            "$ref": "#/components/headers/RequestId"
          },
          "X-RateLimit-Limit": {
            "$ref": "#/components/headers/RateLimitLimit"
          },
          "X-RateLimit-Remaining": {
            "$ref": "#/components/headers/RateLimitRemaining"
          },
          "X-RateLimit-Reset": {
            "$ref": "#/components/headers/RateLimitReset"
          },
          "Retry-After": {
            "$ref": "#/components/headers/RetryAfter"
          }
        },
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            },
            "examples": {
              "rateLimit": {
                "$ref": "#/components/examples/RateLimitProblem"
              }
            }
          }
        }
      },
      "InternalError": {
        "description": "Unexpected platform API failure.",
        "headers": {
          "X-Request-Id": {
            "$ref": "#/components/headers/RequestId"
          }
        },
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            }
          }
        }
      },
      "ServiceUnavailable": {
        "description": "A required managed platform dependency is unavailable.",
        "headers": {
          "X-Request-Id": {
            "$ref": "#/components/headers/RequestId"
          }
        },
        "content": {
          "application/problem+json": {
            "schema": {
              "$ref": "#/components/schemas/Problem"
            }
          }
        }
      }
    }
  }
}