Skip to main content
Glama

civilquants

Save project

save_project

Persist a CivilQuants project with its assembly list. Each call creates a new project — it never overwrites an existing one. To revise a saved project's parameters: call get_project to recover its assemblies, amend the values, then call save_project again with the amended list (a revision-suffixed name like 'Pump Station R02' keeps the history browsable) and run recompute_project on the new project_id — recompute_project takes no parameter overrides. To measure a different assembly type instead, route via resolve_assembly_from_description. Re-find saved work in a later conversation with list_projects or get_project by exact name. Paid tier only — anonymous callers receive a TIER_INSUFFICIENT envelope pointing at https://civilquants.com/pricing.

Input Schema

TableJSON Schema
NameRequiredDescriptionDefault
requestYesBody for ``POST /api/v1/mcp/project/save``.

Output Schema

TableJSON Schema
NameRequiredDescriptionDefault
resultYes

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed1 schema field changed
    • changedOutput schema / properties / result / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "_meta": {
      -        "additionalProperties": false,
      -        "description": "Canonical schema § 0.2 — present on every MCPResponse.\n\nRequired fields: `schema_version`, `request_id`, `issued_at`, `tier`.\nThe free-tier-only fields (`upgrade_hint`, `tos_url`, `warranty_disclaimer`,\n`tier_upgrade`, `rate_limit_remaining`) are populated by the middleware\nwhen `tier == \"free\"`; absent on paid-tier responses.",
      -        "properties": {
      -          "deliverables": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "description": "Canonical schema § 0.3 — R2 signed URLs (24h TTL).",
      -                "properties": {
      -                  "docx_url": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "dxf_url": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "expires_at": {
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "pdf_url": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "xlsx_url": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  }
      -                },
      -                "required": [
      -                  "expires_at"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "document_id": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "hint": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "issued_at": {
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "output_mode": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "description": "Surfaces what a trimmed ``output_mode`` withheld from ``data``.\n\nA trimmed mode (``summary`` / ``boq`` / ``boq_with_backup``) withholds\nalready-computed fields to keep the chat payload small. The withheld value\nreads to a client agent as \"capability missing\" (the box-culvert \"geometry\nbuilder isn't firing\" scare) rather than \"pared for size\": ``drawing`` and\n``audit_trail`` appear as ``null``, ``boq_rows`` as an empty list ``[]``\n(its type forbids ``null``) — both indistinguishable from a genuine absent\nresult. This names the withheld fields and the exact mode that brings each\nback, so the value is unambiguous. Absent on the default ``full_json`` mode\n— nothing is withheld, nothing to point at.",
      -                "properties": {
      -                  "mode": {
      -                    "enum": [
      -                      "summary",
      -                      "boq",
      -                      "boq_with_backup"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "omitted_fields": {
      -                    "items": {
      -                      "type": "string"
      -                    },
      -                    "minItems": 1,
      -                    "type": "array"
      -                  },
      -                  "retrieve_with": {
      -                    "minLength": 1,
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "mode",
      -                  "omitted_fields",
      -                  "retrieve_with"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "rate_limit_remaining": {
      -            "anyOf": [
      -              {
      -                "minimum": 0,
      -                "type": "integer"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "request_id": {
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "schema_version": {
      -            "const": "1.0.0",
      -            "default": "1.0.0",
      -            "type": "string"
      -          },
      -          "scope_boundary": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "description": "Canonical schema § 0.6 — surfaces what this assembly produces vs not.",
      -                "properties": {
      -                  "not_in_scope": {
      -                    "items": {
      -                      "type": "string"
      -                    },
      -                    "type": "array"
      -                  },
      -                  "produced": {
      -                    "items": {
      -                      "type": "string"
      -                    },
      -                    "type": "array"
      -                  },
      -                  "recommended_companions": {
      -                    "anyOf": [
      -                      {
      -                        "items": {
      -                          "type": "string"
      -                        },
      -                        "type": "array"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  }
      -                },
      -                "required": [
      -                  "produced",
      -                  "not_in_scope"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "tier": {
      -            "enum": [
      -              "free",
      -              "paid"
      -            ],
      -            "type": "string"
      -          },
      -          "tier_upgrade": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "description": "Canonical schema § 0.7 — present on free-tier responses only.",
      -                "properties": {
      -                  "available_tiers": {
      -                    "items": {
      -                      "additionalProperties": false,
      -                      "description": "Canonical schema § 0.7 — single tier in the upgrade carousel.",
      -                      "properties": {
      -                        "billing": {
      -                          "enum": [
      -                            "one_off",
      -                            "monthly",
      -                            "annual"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "currency": {
      -                          "enum": [
      -                            "GBP",
      -                            "SGD",
      -                            "EUR",
      -                            "USD",
      -                            "CAD",
      -                            "AUD",
      -                            "NZD",
      -                            "MYR"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "display_name": {
      -                          "type": "string"
      -                        },
      -                        "price_local": {
      -                          "type": "number"
      -                        },
      -                        "tier_slug": {
      -                          "enum": [
      -                            "7_day_pass",
      -                            "solo",
      -                            "studio",
      -                            "practice"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "unlock_summary": {
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "tier_slug",
      -                        "display_name",
      -                        "price_local",
      -                        "currency",
      -                        "billing",
      -                        "unlock_summary"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "type": "array"
      -                  },
      -                  "current_tier": {
      -                    "const": "free",
      -                    "default": "free",
      -                    "type": "string"
      -                  },
      -                  "pass_credit": {
      -                    "anyOf": [
      -                      {
      -                        "additionalProperties": false,
      -                        "description": "Canonical schema § 0.7 — pass-credit upgrade hook.",
      -                        "properties": {
      -                          "amount_local": {
      -                            "type": "number"
      -                          },
      -                          "applies_to": {
      -                            "const": "solo_first_month",
      -                            "default": "solo_first_month",
      -                            "type": "string"
      -                          },
      -                          "currency": {
      -                            "type": "string"
      -                          },
      -                          "redeemable_until": {
      -                            "type": "string"
      -                          }
      -                        },
      -                        "required": [
      -                          "amount_local",
      -                          "currency",
      -                          "redeemable_until"
      -                        ],
      -                        "type": "object"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "pricing_url": {
      -                    "default": "https://civilquants.com/pricing",
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "available_tiers"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "tos_url": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "upgrade_hint": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "warranty_disclaimer": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          }
      -        },
      -        "required": [
      -          "request_id",
      -          "issued_at",
      -          "tier"
      -        ],
      -        "type": "object"
      -      },
      -      "data": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "assembly_ids": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "project_id": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "project_id",
      -              "assembly_ids"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "error": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "description": "Canonical schema § 0.4 — error payload returned in `MCPResponse.error`.",
      -            "properties": {
      -              "code": {
      -                "description": "Canonical schema § 0.5 catalogue.\n\nEach member maps to a documented `recoverable` flag (see\n`IS_RECOVERABLE`) — clients use the flag to decide retry vs surface.",
      -                "enum": [
      -                  "RATE_LIMIT_EXCEEDED",
      -                  "TIER_INSUFFICIENT",
      -                  "INVALID_INPUT",
      -                  "SCHEMA_VERSION_MISMATCH",
      -                  "SCHEMA_INVARIANT_VIOLATION",
      -                  "UPSTREAM_TIMEOUT",
      -                  "BACKEND_FAILURE",
      -                  "IP_BLOCKED",
      -                  "RESOURCE_NOT_FOUND",
      -                  "RENDER_FAILURE",
      -                  "OCR_LOW_CONFIDENCE",
      -                  "MANUAL_REVIEW_REQUIRED",
      -                  "ACCEPTANCE_REQUIRED",
      -                  "INVALID_TOKEN"
      -                ],
      -                "type": "string"
      -              },
      -              "details": {
      -                "anyOf": [
      -                  {
      -                    "additionalProperties": true,
      -                    "type": "object"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null
      -              },
      -              "message": {
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "recoverable": {
      -                "type": "boolean"
      -              },
      -              "retry_after_seconds": {
      -                "anyOf": [
      -                  {
      -                    "minimum": 0,
      -                    "type": "integer"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null
      -              }
      -            },
      -            "required": [
      -              "code",
      -              "message",
      -              "recoverable"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      }
      -    },
      -    "required": [
      -      "_meta"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "_meta": {
      -        "additionalProperties": false,
      -        "description": "Canonical schema § 0.2 — present on every MCPResponse.\n\nRequired fields: `schema_version`, `request_id`, `issued_at`, `tier`.\nThe free-tier-only fields (`upgrade_hint`, `tos_url`, `warranty_disclaimer`,\n`tier_upgrade`, `rate_limit_remaining`) are populated by the middleware\nwhen `tier == \"free\"`; absent on paid-tier responses.",
      -        "properties": {
      -          "deliverables": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "description": "Canonical schema § 0.3 — R2 signed URLs (24h TTL).",
      -                "properties": {
      -                  "docx_url": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "dxf_url": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "expires_at": {
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "pdf_url": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "xlsx_url": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  }
      -                },
      -                "required": [
      -                  "expires_at"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "document_id": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "hint": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "issued_at": {
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "output_mode": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "description": "Surfaces what a trimmed ``output_mode`` withheld from ``data``.\n\nA trimmed mode (``summary`` / ``boq`` / ``boq_with_backup``) withholds\nalready-computed fields to keep the chat payload small. The withheld value\nreads to a client agent as \"capability missing\" (the box-culvert \"geometry\nbuilder isn't firing\" scare) rather than \"pared for size\": ``drawing`` and\n``audit_trail`` appear as ``null``, ``boq_rows`` as an empty list ``[]``\n(its type forbids ``null``) — both indistinguishable from a genuine absent\nresult. This names the withheld fields and the exact mode that brings each\nback, so the value is unambiguous. Absent on the default ``full_json`` mode\n— nothing is withheld, nothing to point at.",
      -                "properties": {
      -                  "mode": {
      -                    "enum": [
      -                      "summary",
      -                      "boq",
      -                      "boq_with_backup"
      -                    ],
      -                    "type": "string"
      -                  },
      -                  "omitted_fields": {
      -                    "items": {
      -                      "type": "string"
      -                    },
      -                    "minItems": 1,
      -                    "type": "array"
      -                  },
      -                  "retrieve_with": {
      -                    "minLength": 1,
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "mode",
      -                  "omitted_fields",
      -                  "retrieve_with"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "rate_limit_remaining": {
      -            "anyOf": [
      -              {
      -                "minimum": 0,
      -                "type": "integer"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "request_id": {
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "schema_version": {
      -            "const": "1.0.0",
      -            "default": "1.0.0",
      -            "type": "string"
      -          },
      -          "scope_boundary": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "description": "Canonical schema § 0.6 — surfaces what this assembly produces vs not.",
      -                "properties": {
      -                  "not_in_scope": {
      -                    "items": {
      -                      "type": "string"
      -                    },
      -                    "type": "array"
      -                  },
      -                  "produced": {
      -                    "items": {
      -                      "type": "string"
      -                    },
      -                    "type": "array"
      -                  },
      -                  "recommended_companions": {
      -                    "anyOf": [
      -                      {
      -                        "items": {
      -                          "type": "string"
      -                        },
      -                        "type": "array"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  }
      -                },
      -                "required": [
      -                  "produced",
      -                  "not_in_scope"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "tier": {
      -            "enum": [
      -              "free",
      -              "paid"
      -            ],
      -            "type": "string"
      -          },
      -          "tier_upgrade": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "description": "Canonical schema § 0.7 — present on free-tier responses only.",
      -                "properties": {
      -                  "available_tiers": {
      -                    "items": {
      -                      "additionalProperties": false,
      -                      "description": "Canonical schema § 0.7 — single tier in the upgrade carousel.",
      -                      "properties": {
      -                        "billing": {
      -                          "enum": [
      -                            "one_off",
      -                            "monthly",
      -                            "annual"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "currency": {
      -                          "enum": [
      -                            "GBP",
      -                            "SGD",
      -                            "EUR",
      -                            "USD",
      -                            "CAD",
      -                            "AUD",
      -                            "NZD",
      -                            "MYR"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "display_name": {
      -                          "type": "string"
      -                        },
      -                        "price_local": {
      -                          "type": "number"
      -                        },
      -                        "tier_slug": {
      -                          "enum": [
      -                            "7_day_pass",
      -                            "solo",
      -                            "studio",
      -                            "practice"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "unlock_summary": {
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "tier_slug",
      -                        "display_name",
      -                        "price_local",
      -                        "currency",
      -                        "billing",
      -                        "unlock_summary"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "type": "array"
      -                  },
      -                  "current_tier": {
      -                    "const": "free",
      -                    "default": "free",
      -                    "type": "string"
      -                  },
      -                  "pass_credit": {
      -                    "anyOf": [
      -                      {
      -                        "additionalProperties": false,
      -                        "description": "Canonical schema § 0.7 — pass-credit upgrade hook.",
      -                        "properties": {
      -                          "amount_local": {
      -                            "type": "number"
      -                          },
      -                          "applies_to": {
      -                            "const": "solo_first_month",
      -                            "default": "solo_first_month",
      -                            "type": "string"
      -                          },
      -                          "currency": {
      -                            "type": "string"
      -                          },
      -                          "redeemable_until": {
      -                            "type": "string"
      -                          }
      -                        },
      -                        "required": [
      -                          "amount_local",
      -                          "currency",
      -                          "redeemable_until"
      -                        ],
      -                        "type": "object"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "pricing_url": {
      -                    "default": "https://civilquants.com/pricing",
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "available_tiers"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "tos_url": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "upgrade_hint": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "warranty_disclaimer": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          }
      -        },
      -        "required": [
      -          "request_id",
      -          "issued_at",
      -          "tier"
      -        ],
      -        "type": "object"
      -      },
      -      "data": {
      -        "default": null,
      -        "title": "Data"
      -      },
      -      "error": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "description": "Canonical schema § 0.4 — error payload returned in `MCPResponse.error`.",
      -            "properties": {
      -              "code": {
      -                "description": "Canonical schema § 0.5 catalogue.\n\nEach member maps to a documented `recoverable` flag (see\n`IS_RECOVERABLE`) — clients use the flag to decide retry vs surface.",
      -                "enum": [
      -                  "RATE_LIMIT_EXCEEDED",
      -                  "TIER_INSUFFICIENT",
      -                  "INVALID_INPUT",
      -                  "SCHEMA_VERSION_MISMATCH",
      -                  "SCHEMA_INVARIANT_VIOLATION",
      -                  "UPSTREAM_TIMEOUT",
      -                  "BACKEND_FAILURE",
      -                  "IP_BLOCKED",
      -                  "RESOURCE_NOT_FOUND",
      -                  "RENDER_FAILURE",
      -                  "OCR_LOW_CONFIDENCE",
      -                  "MANUAL_REVIEW_REQUIRED",
      -                  "ACCEPTANCE_REQUIRED",
      -                  "INVALID_TOKEN"
      -                ],
      -                "type": "string"
      -              },
      -              "details": {
      -                "anyOf": [
      -                  {
      -                    "additionalProperties": true,
      -                    "type": "object"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null
      -              },
      -              "message": {
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "recoverable": {
      -                "type": "boolean"
      -              },
      -              "retry_after_seconds": {
      -                "anyOf": [
      -                  {
      -                    "minimum": 0,
      -                    "type": "integer"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null
      -              }
      -            },
      -            "required": [
      -              "code",
      -              "message",
      -              "recoverable"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      }
      -    },
      -    "required": [
      -      "_meta"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "_meta": {
      +        "additionalProperties": false,
      +        "description": "Canonical schema § 0.2 — present on every MCPResponse.\n\nRequired fields: `schema_version`, `request_id`, `issued_at`, `tier`.\nThe free-tier-only fields (`upgrade_hint`, `tos_url`, `warranty_disclaimer`,\n`tier_upgrade`, `rate_limit_remaining`) are populated by the middleware\nwhen `tier == \"free\"`; absent on paid-tier responses.",
      +        "properties": {
      +          "deliverables": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "description": "Canonical schema § 0.3 — R2 signed URLs (24h TTL).",
      +                "properties": {
      +                  "docx_url": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "dxf_url": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "expires_at": {
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "pdf_url": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "xlsx_url": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  }
      +                },
      +                "required": [
      +                  "expires_at"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "document_id": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "hint": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "issued_at": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "output_mode": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "description": "Surfaces what a trimmed ``output_mode`` withheld from ``data``.\n\nA trimmed mode (``summary`` / ``material_schedule`` / ``boq`` /\n``boq_with_backup``) withholds\nalready-computed fields to keep the chat payload small. The withheld value\nreads to a client agent as \"capability missing\" (the box-culvert \"geometry\nbuilder isn't firing\" scare) rather than \"pared for size\": ``drawing`` and\n``audit_trail`` appear as ``null``, ``boq_rows`` as an empty list ``[]``\n(its type forbids ``null``) — both indistinguishable from a genuine absent\nresult. This names the withheld fields and the exact mode that brings each\nback, so the value is unambiguous. Absent on the default ``full_json`` mode\n— nothing is withheld, nothing to point at.",
      +                "properties": {
      +                  "mode": {
      +                    "enum": [
      +                      "summary",
      +                      "material_schedule",
      +                      "boq",
      +                      "boq_with_backup"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "omitted_fields": {
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "minItems": 1,
      +                    "type": "array"
      +                  },
      +                  "retrieve_with": {
      +                    "minLength": 1,
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "mode",
      +                  "omitted_fields",
      +                  "retrieve_with"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "rate_limit_remaining": {
      +            "anyOf": [
      +              {
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "request_id": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "schema_version": {
      +            "const": "1.0.0",
      +            "default": "1.0.0",
      +            "type": "string"
      +          },
      +          "scope_boundary": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "description": "Canonical schema § 0.6 — surfaces what this assembly produces vs not.",
      +                "properties": {
      +                  "not_in_scope": {
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "produced": {
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "recommended_companions": {
      +                    "anyOf": [
      +                      {
      +                        "items": {
      +                          "type": "string"
      +                        },
      +                        "type": "array"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  }
      +                },
      +                "required": [
      +                  "produced",
      +                  "not_in_scope"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "tier": {
      +            "enum": [
      +              "free",
      +              "paid"
      +            ],
      +            "type": "string"
      +          },
      +          "tier_upgrade": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "description": "Canonical schema § 0.7 — present on free-tier responses only.",
      +                "properties": {
      +                  "available_tiers": {
      +                    "items": {
      +                      "additionalProperties": false,
      +                      "description": "Canonical schema § 0.7 — single tier in the upgrade carousel.",
      +                      "properties": {
      +                        "billing": {
      +                          "enum": [
      +                            "one_off",
      +                            "monthly",
      +                            "annual"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "currency": {
      +                          "enum": [
      +                            "GBP",
      +                            "SGD",
      +                            "EUR",
      +                            "USD",
      +                            "CAD",
      +                            "AUD",
      +                            "NZD",
      +                            "MYR"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "display_name": {
      +                          "type": "string"
      +                        },
      +                        "price_local": {
      +                          "type": "number"
      +                        },
      +                        "tier_slug": {
      +                          "enum": [
      +                            "7_day_pass",
      +                            "solo",
      +                            "studio",
      +                            "practice"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "unlock_summary": {
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "tier_slug",
      +                        "display_name",
      +                        "price_local",
      +                        "currency",
      +                        "billing",
      +                        "unlock_summary"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "current_tier": {
      +                    "const": "free",
      +                    "default": "free",
      +                    "type": "string"
      +                  },
      +                  "pass_credit": {
      +                    "anyOf": [
      +                      {
      +                        "additionalProperties": false,
      +                        "description": "Canonical schema § 0.7 — pass-credit upgrade hook.",
      +                        "properties": {
      +                          "amount_local": {
      +                            "type": "number"
      +                          },
      +                          "applies_to": {
      +                            "const": "solo_first_month",
      +                            "default": "solo_first_month",
      +                            "type": "string"
      +                          },
      +                          "currency": {
      +                            "type": "string"
      +                          },
      +                          "redeemable_until": {
      +                            "type": "string"
      +                          }
      +                        },
      +                        "required": [
      +                          "amount_local",
      +                          "currency",
      +                          "redeemable_until"
      +                        ],
      +                        "type": "object"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "pricing_url": {
      +                    "default": "https://civilquants.com/pricing",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "available_tiers"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "tos_url": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "upgrade_hint": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "warranty_disclaimer": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          }
      +        },
      +        "required": [
      +          "request_id",
      +          "issued_at",
      +          "tier"
      +        ],
      +        "type": "object"
      +      },
      +      "data": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "assembly_ids": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "project_id": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "project_id",
      +              "assembly_ids"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "error": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "description": "Canonical schema § 0.4 — error payload returned in `MCPResponse.error`.",
      +            "properties": {
      +              "code": {
      +                "description": "Canonical schema § 0.5 catalogue.\n\nEach member maps to a documented `recoverable` flag (see\n`IS_RECOVERABLE`) — clients use the flag to decide retry vs surface.",
      +                "enum": [
      +                  "RATE_LIMIT_EXCEEDED",
      +                  "TIER_INSUFFICIENT",
      +                  "INVALID_INPUT",
      +                  "SCHEMA_VERSION_MISMATCH",
      +                  "SCHEMA_INVARIANT_VIOLATION",
      +                  "UPSTREAM_TIMEOUT",
      +                  "BACKEND_FAILURE",
      +                  "IP_BLOCKED",
      +                  "RESOURCE_NOT_FOUND",
      +                  "RENDER_FAILURE",
      +                  "OCR_LOW_CONFIDENCE",
      +                  "MANUAL_REVIEW_REQUIRED",
      +                  "ACCEPTANCE_REQUIRED",
      +                  "INVALID_TOKEN"
      +                ],
      +                "type": "string"
      +              },
      +              "details": {
      +                "anyOf": [
      +                  {
      +                    "additionalProperties": true,
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "message": {
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "recoverable": {
      +                "type": "boolean"
      +              },
      +              "retry_after_seconds": {
      +                "anyOf": [
      +                  {
      +                    "minimum": 0,
      +                    "type": "integer"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              }
      +            },
      +            "required": [
      +              "code",
      +              "message",
      +              "recoverable"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      }
      +    },
      +    "required": [
      +      "_meta"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "_meta": {
      +        "additionalProperties": false,
      +        "description": "Canonical schema § 0.2 — present on every MCPResponse.\n\nRequired fields: `schema_version`, `request_id`, `issued_at`, `tier`.\nThe free-tier-only fields (`upgrade_hint`, `tos_url`, `warranty_disclaimer`,\n`tier_upgrade`, `rate_limit_remaining`) are populated by the middleware\nwhen `tier == \"free\"`; absent on paid-tier responses.",
      +        "properties": {
      +          "deliverables": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "description": "Canonical schema § 0.3 — R2 signed URLs (24h TTL).",
      +                "properties": {
      +                  "docx_url": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "dxf_url": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "expires_at": {
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "pdf_url": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "xlsx_url": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  }
      +                },
      +                "required": [
      +                  "expires_at"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "document_id": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "hint": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "issued_at": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "output_mode": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "description": "Surfaces what a trimmed ``output_mode`` withheld from ``data``.\n\nA trimmed mode (``summary`` / ``material_schedule`` / ``boq`` /\n``boq_with_backup``) withholds\nalready-computed fields to keep the chat payload small. The withheld value\nreads to a client agent as \"capability missing\" (the box-culvert \"geometry\nbuilder isn't firing\" scare) rather than \"pared for size\": ``drawing`` and\n``audit_trail`` appear as ``null``, ``boq_rows`` as an empty list ``[]``\n(its type forbids ``null``) — both indistinguishable from a genuine absent\nresult. This names the withheld fields and the exact mode that brings each\nback, so the value is unambiguous. Absent on the default ``full_json`` mode\n— nothing is withheld, nothing to point at.",
      +                "properties": {
      +                  "mode": {
      +                    "enum": [
      +                      "summary",
      +                      "material_schedule",
      +                      "boq",
      +                      "boq_with_backup"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "omitted_fields": {
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "minItems": 1,
      +                    "type": "array"
      +                  },
      +                  "retrieve_with": {
      +                    "minLength": 1,
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "mode",
      +                  "omitted_fields",
      +                  "retrieve_with"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "rate_limit_remaining": {
      +            "anyOf": [
      +              {
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "request_id": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "schema_version": {
      +            "const": "1.0.0",
      +            "default": "1.0.0",
      +            "type": "string"
      +          },
      +          "scope_boundary": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "description": "Canonical schema § 0.6 — surfaces what this assembly produces vs not.",
      +                "properties": {
      +                  "not_in_scope": {
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "produced": {
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "recommended_companions": {
      +                    "anyOf": [
      +                      {
      +                        "items": {
      +                          "type": "string"
      +                        },
      +                        "type": "array"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  }
      +                },
      +                "required": [
      +                  "produced",
      +                  "not_in_scope"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "tier": {
      +            "enum": [
      +              "free",
      +              "paid"
      +            ],
      +            "type": "string"
      +          },
      +          "tier_upgrade": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "description": "Canonical schema § 0.7 — present on free-tier responses only.",
      +                "properties": {
      +                  "available_tiers": {
      +                    "items": {
      +                      "additionalProperties": false,
      +                      "description": "Canonical schema § 0.7 — single tier in the upgrade carousel.",
      +                      "properties": {
      +                        "billing": {
      +                          "enum": [
      +                            "one_off",
      +                            "monthly",
      +                            "annual"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "currency": {
      +                          "enum": [
      +                            "GBP",
      +                            "SGD",
      +                            "EUR",
      +                            "USD",
      +                            "CAD",
      +                            "AUD",
      +                            "NZD",
      +                            "MYR"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "display_name": {
      +                          "type": "string"
      +                        },
      +                        "price_local": {
      +                          "type": "number"
      +                        },
      +                        "tier_slug": {
      +                          "enum": [
      +                            "7_day_pass",
      +                            "solo",
      +                            "studio",
      +                            "practice"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "unlock_summary": {
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "tier_slug",
      +                        "display_name",
      +                        "price_local",
      +                        "currency",
      +                        "billing",
      +                        "unlock_summary"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "current_tier": {
      +                    "const": "free",
      +                    "default": "free",
      +                    "type": "string"
      +                  },
      +                  "pass_credit": {
      +                    "anyOf": [
      +                      {
      +                        "additionalProperties": false,
      +                        "description": "Canonical schema § 0.7 — pass-credit upgrade hook.",
      +                        "properties": {
      +                          "amount_local": {
      +                            "type": "number"
      +                          },
      +                          "applies_to": {
      +                            "const": "solo_first_month",
      +                            "default": "solo_first_month",
      +                            "type": "string"
      +                          },
      +                          "currency": {
      +                            "type": "string"
      +                          },
      +                          "redeemable_until": {
      +                            "type": "string"
      +                          }
      +                        },
      +                        "required": [
      +                          "amount_local",
      +                          "currency",
      +                          "redeemable_until"
      +                        ],
      +                        "type": "object"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "pricing_url": {
      +                    "default": "https://civilquants.com/pricing",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "available_tiers"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "tos_url": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "upgrade_hint": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "warranty_disclaimer": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          }
      +        },
      +        "required": [
      +          "request_id",
      +          "issued_at",
      +          "tier"
      +        ],
      +        "type": "object"
      +      },
      +      "data": {
      +        "default": null,
      +        "title": "Data"
      +      },
      +      "error": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "description": "Canonical schema § 0.4 — error payload returned in `MCPResponse.error`.",
      +            "properties": {
      +              "code": {
      +                "description": "Canonical schema § 0.5 catalogue.\n\nEach member maps to a documented `recoverable` flag (see\n`IS_RECOVERABLE`) — clients use the flag to decide retry vs surface.",
      +                "enum": [
      +                  "RATE_LIMIT_EXCEEDED",
      +                  "TIER_INSUFFICIENT",
      +                  "INVALID_INPUT",
      +                  "SCHEMA_VERSION_MISMATCH",
      +                  "SCHEMA_INVARIANT_VIOLATION",
      +                  "UPSTREAM_TIMEOUT",
      +                  "BACKEND_FAILURE",
      +                  "IP_BLOCKED",
      +                  "RESOURCE_NOT_FOUND",
      +                  "RENDER_FAILURE",
      +                  "OCR_LOW_CONFIDENCE",
      +                  "MANUAL_REVIEW_REQUIRED",
      +                  "ACCEPTANCE_REQUIRED",
      +                  "INVALID_TOKEN"
      +                ],
      +                "type": "string"
      +              },
      +              "details": {
      +                "anyOf": [
      +                  {
      +                    "additionalProperties": true,
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "message": {
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "recoverable": {
      +                "type": "boolean"
      +              },
      +              "retry_after_seconds": {
      +                "anyOf": [
      +                  {
      +                    "minimum": 0,
      +                    "type": "integer"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              }
      +            },
      +            "required": [
      +              "code",
      +              "message",
      +              "recoverable"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      }
      +    },
      +    "required": [
      +      "_meta"
      +    ],
      +    "type": "object"
      +  }
      +]
  2. Changed1 schema field changed
    • changedOutput schema / properties / result / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "_meta": {
      -        "additionalProperties": false,
      -        "description": "Canonical schema § 0.2 — present on every MCPResponse.\n\nRequired fields: `schema_version`, `request_id`, `issued_at`, `tier`.\nThe free-tier-only fields (`upgrade_hint`, `tos_url`, `warranty_disclaimer`,\n`tier_upgrade`, `rate_limit_remaining`) are populated by the middleware\nwhen `tier == \"free\"`; absent on paid-tier responses.",
      -        "properties": {
      -          "deliverables": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "description": "Canonical schema § 0.3 — R2 signed URLs (24h TTL).",
      -                "properties": {
      -                  "docx_url": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "dxf_url": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "expires_at": {
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "pdf_url": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "xlsx_url": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  }
      -                },
      -                "required": [
      -                  "expires_at"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "document_id": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "hint": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "issued_at": {
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "rate_limit_remaining": {
      -            "anyOf": [
      -              {
      -                "minimum": 0,
      -                "type": "integer"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "request_id": {
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "schema_version": {
      -            "const": "1.0.0",
      -            "default": "1.0.0",
      -            "type": "string"
      -          },
      -          "scope_boundary": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "description": "Canonical schema § 0.6 — surfaces what this assembly produces vs not.",
      -                "properties": {
      -                  "not_in_scope": {
      -                    "items": {
      -                      "type": "string"
      -                    },
      -                    "type": "array"
      -                  },
      -                  "produced": {
      -                    "items": {
      -                      "type": "string"
      -                    },
      -                    "type": "array"
      -                  },
      -                  "recommended_companions": {
      -                    "anyOf": [
      -                      {
      -                        "items": {
      -                          "type": "string"
      -                        },
      -                        "type": "array"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  }
      -                },
      -                "required": [
      -                  "produced",
      -                  "not_in_scope"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "tier": {
      -            "enum": [
      -              "free",
      -              "paid"
      -            ],
      -            "type": "string"
      -          },
      -          "tier_upgrade": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "description": "Canonical schema § 0.7 — present on free-tier responses only.",
      -                "properties": {
      -                  "available_tiers": {
      -                    "items": {
      -                      "additionalProperties": false,
      -                      "description": "Canonical schema § 0.7 — single tier in the upgrade carousel.",
      -                      "properties": {
      -                        "billing": {
      -                          "enum": [
      -                            "one_off",
      -                            "monthly",
      -                            "annual"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "currency": {
      -                          "enum": [
      -                            "GBP",
      -                            "SGD",
      -                            "EUR",
      -                            "USD",
      -                            "CAD",
      -                            "AUD",
      -                            "NZD",
      -                            "MYR"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "display_name": {
      -                          "type": "string"
      -                        },
      -                        "price_local": {
      -                          "type": "number"
      -                        },
      -                        "tier_slug": {
      -                          "enum": [
      -                            "7_day_pass",
      -                            "solo",
      -                            "studio",
      -                            "practice"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "unlock_summary": {
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "tier_slug",
      -                        "display_name",
      -                        "price_local",
      -                        "currency",
      -                        "billing",
      -                        "unlock_summary"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "type": "array"
      -                  },
      -                  "current_tier": {
      -                    "const": "free",
      -                    "default": "free",
      -                    "type": "string"
      -                  },
      -                  "pass_credit": {
      -                    "anyOf": [
      -                      {
      -                        "additionalProperties": false,
      -                        "description": "Canonical schema § 0.7 — pass-credit upgrade hook.",
      -                        "properties": {
      -                          "amount_local": {
      -                            "type": "number"
      -                          },
      -                          "applies_to": {
      -                            "const": "solo_first_month",
      -                            "default": "solo_first_month",
      -                            "type": "string"
      -                          },
      -                          "currency": {
      -                            "type": "string"
      -                          },
      -                          "redeemable_until": {
      -                            "type": "string"
      -                          }
      -                        },
      -                        "required": [
      -                          "amount_local",
      -                          "currency",
      -                          "redeemable_until"
      -                        ],
      -                        "type": "object"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "pricing_url": {
      -                    "default": "https://civilquants.com/pricing",
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "available_tiers"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "tos_url": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "upgrade_hint": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "warranty_disclaimer": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          }
      -        },
      -        "required": [
      -          "request_id",
      -          "issued_at",
      -          "tier"
      -        ],
      -        "type": "object"
      -      },
      -      "data": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "assembly_ids": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "project_id": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "project_id",
      -              "assembly_ids"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "error": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "description": "Canonical schema § 0.4 — error payload returned in `MCPResponse.error`.",
      -            "properties": {
      -              "code": {
      -                "description": "Canonical schema § 0.5 catalogue.\n\nEach member maps to a documented `recoverable` flag (see\n`IS_RECOVERABLE`) — clients use the flag to decide retry vs surface.",
      -                "enum": [
      -                  "RATE_LIMIT_EXCEEDED",
      -                  "TIER_INSUFFICIENT",
      -                  "INVALID_INPUT",
      -                  "SCHEMA_VERSION_MISMATCH",
      -                  "SCHEMA_INVARIANT_VIOLATION",
      -                  "UPSTREAM_TIMEOUT",
      -                  "BACKEND_FAILURE",
      -                  "IP_BLOCKED",
      -                  "RESOURCE_NOT_FOUND",
      -                  "RENDER_FAILURE",
      -                  "OCR_LOW_CONFIDENCE",
      -                  "MANUAL_REVIEW_REQUIRED",
      -                  "ACCEPTANCE_REQUIRED",
      -                  "INVALID_TOKEN"
      -                ],
      -                "type": "string"
      -              },
      -              "details": {
      -                "anyOf": [
      -                  {
      -                    "additionalProperties": true,
      -                    "type": "object"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null
      -              },
      -              "message": {
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "recoverable": {
      -                "type": "boolean"
      -              },
      -              "retry_after_seconds": {
      -                "anyOf": [
      -                  {
      -                    "minimum": 0,
      -                    "type": "integer"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null
      -              }
      -            },
      -            "required": [
      -              "code",
      -              "message",
      -              "recoverable"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      }
      -    },
      -    "required": [
      -      "_meta"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "_meta": {
      -        "additionalProperties": false,
      -        "description": "Canonical schema § 0.2 — present on every MCPResponse.\n\nRequired fields: `schema_version`, `request_id`, `issued_at`, `tier`.\nThe free-tier-only fields (`upgrade_hint`, `tos_url`, `warranty_disclaimer`,\n`tier_upgrade`, `rate_limit_remaining`) are populated by the middleware\nwhen `tier == \"free\"`; absent on paid-tier responses.",
      -        "properties": {
      -          "deliverables": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "description": "Canonical schema § 0.3 — R2 signed URLs (24h TTL).",
      -                "properties": {
      -                  "docx_url": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "dxf_url": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "expires_at": {
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "pdf_url": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "xlsx_url": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  }
      -                },
      -                "required": [
      -                  "expires_at"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "document_id": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "hint": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "issued_at": {
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "rate_limit_remaining": {
      -            "anyOf": [
      -              {
      -                "minimum": 0,
      -                "type": "integer"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "request_id": {
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "schema_version": {
      -            "const": "1.0.0",
      -            "default": "1.0.0",
      -            "type": "string"
      -          },
      -          "scope_boundary": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "description": "Canonical schema § 0.6 — surfaces what this assembly produces vs not.",
      -                "properties": {
      -                  "not_in_scope": {
      -                    "items": {
      -                      "type": "string"
      -                    },
      -                    "type": "array"
      -                  },
      -                  "produced": {
      -                    "items": {
      -                      "type": "string"
      -                    },
      -                    "type": "array"
      -                  },
      -                  "recommended_companions": {
      -                    "anyOf": [
      -                      {
      -                        "items": {
      -                          "type": "string"
      -                        },
      -                        "type": "array"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  }
      -                },
      -                "required": [
      -                  "produced",
      -                  "not_in_scope"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "tier": {
      -            "enum": [
      -              "free",
      -              "paid"
      -            ],
      -            "type": "string"
      -          },
      -          "tier_upgrade": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "description": "Canonical schema § 0.7 — present on free-tier responses only.",
      -                "properties": {
      -                  "available_tiers": {
      -                    "items": {
      -                      "additionalProperties": false,
      -                      "description": "Canonical schema § 0.7 — single tier in the upgrade carousel.",
      -                      "properties": {
      -                        "billing": {
      -                          "enum": [
      -                            "one_off",
      -                            "monthly",
      -                            "annual"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "currency": {
      -                          "enum": [
      -                            "GBP",
      -                            "SGD",
      -                            "EUR",
      -                            "USD",
      -                            "CAD",
      -                            "AUD",
      -                            "NZD",
      -                            "MYR"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "display_name": {
      -                          "type": "string"
      -                        },
      -                        "price_local": {
      -                          "type": "number"
      -                        },
      -                        "tier_slug": {
      -                          "enum": [
      -                            "7_day_pass",
      -                            "solo",
      -                            "studio",
      -                            "practice"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "unlock_summary": {
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "tier_slug",
      -                        "display_name",
      -                        "price_local",
      -                        "currency",
      -                        "billing",
      -                        "unlock_summary"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "type": "array"
      -                  },
      -                  "current_tier": {
      -                    "const": "free",
      -                    "default": "free",
      -                    "type": "string"
      -                  },
      -                  "pass_credit": {
      -                    "anyOf": [
      -                      {
      -                        "additionalProperties": false,
      -                        "description": "Canonical schema § 0.7 — pass-credit upgrade hook.",
      -                        "properties": {
      -                          "amount_local": {
      -                            "type": "number"
      -                          },
      -                          "applies_to": {
      -                            "const": "solo_first_month",
      -                            "default": "solo_first_month",
      -                            "type": "string"
      -                          },
      -                          "currency": {
      -                            "type": "string"
      -                          },
      -                          "redeemable_until": {
      -                            "type": "string"
      -                          }
      -                        },
      -                        "required": [
      -                          "amount_local",
      -                          "currency",
      -                          "redeemable_until"
      -                        ],
      -                        "type": "object"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "pricing_url": {
      -                    "default": "https://civilquants.com/pricing",
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "available_tiers"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "tos_url": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "upgrade_hint": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "warranty_disclaimer": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          }
      -        },
      -        "required": [
      -          "request_id",
      -          "issued_at",
      -          "tier"
      -        ],
      -        "type": "object"
      -      },
      -      "data": {
      -        "default": null,
      -        "title": "Data"
      -      },
      -      "error": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "description": "Canonical schema § 0.4 — error payload returned in `MCPResponse.error`.",
      -            "properties": {
      -              "code": {
      -                "description": "Canonical schema § 0.5 catalogue.\n\nEach member maps to a documented `recoverable` flag (see\n`IS_RECOVERABLE`) — clients use the flag to decide retry vs surface.",
      -                "enum": [
      -                  "RATE_LIMIT_EXCEEDED",
      -                  "TIER_INSUFFICIENT",
      -                  "INVALID_INPUT",
      -                  "SCHEMA_VERSION_MISMATCH",
      -                  "SCHEMA_INVARIANT_VIOLATION",
      -                  "UPSTREAM_TIMEOUT",
      -                  "BACKEND_FAILURE",
      -                  "IP_BLOCKED",
      -                  "RESOURCE_NOT_FOUND",
      -                  "RENDER_FAILURE",
      -                  "OCR_LOW_CONFIDENCE",
      -                  "MANUAL_REVIEW_REQUIRED",
      -                  "ACCEPTANCE_REQUIRED",
      -                  "INVALID_TOKEN"
      -                ],
      -                "type": "string"
      -              },
      -              "details": {
      -                "anyOf": [
      -                  {
      -                    "additionalProperties": true,
      -                    "type": "object"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null
      -              },
      -              "message": {
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "recoverable": {
      -                "type": "boolean"
      -              },
      -              "retry_after_seconds": {
      -                "anyOf": [
      -                  {
      -                    "minimum": 0,
      -                    "type": "integer"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null
      -              }
      -            },
      -            "required": [
      -              "code",
      -              "message",
      -              "recoverable"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      }
      -    },
      -    "required": [
      -      "_meta"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "_meta": {
      +        "additionalProperties": false,
      +        "description": "Canonical schema § 0.2 — present on every MCPResponse.\n\nRequired fields: `schema_version`, `request_id`, `issued_at`, `tier`.\nThe free-tier-only fields (`upgrade_hint`, `tos_url`, `warranty_disclaimer`,\n`tier_upgrade`, `rate_limit_remaining`) are populated by the middleware\nwhen `tier == \"free\"`; absent on paid-tier responses.",
      +        "properties": {
      +          "deliverables": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "description": "Canonical schema § 0.3 — R2 signed URLs (24h TTL).",
      +                "properties": {
      +                  "docx_url": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "dxf_url": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "expires_at": {
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "pdf_url": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "xlsx_url": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  }
      +                },
      +                "required": [
      +                  "expires_at"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "document_id": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "hint": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "issued_at": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "output_mode": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "description": "Surfaces what a trimmed ``output_mode`` withheld from ``data``.\n\nA trimmed mode (``summary`` / ``boq`` / ``boq_with_backup``) withholds\nalready-computed fields to keep the chat payload small. The withheld value\nreads to a client agent as \"capability missing\" (the box-culvert \"geometry\nbuilder isn't firing\" scare) rather than \"pared for size\": ``drawing`` and\n``audit_trail`` appear as ``null``, ``boq_rows`` as an empty list ``[]``\n(its type forbids ``null``) — both indistinguishable from a genuine absent\nresult. This names the withheld fields and the exact mode that brings each\nback, so the value is unambiguous. Absent on the default ``full_json`` mode\n— nothing is withheld, nothing to point at.",
      +                "properties": {
      +                  "mode": {
      +                    "enum": [
      +                      "summary",
      +                      "boq",
      +                      "boq_with_backup"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "omitted_fields": {
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "minItems": 1,
      +                    "type": "array"
      +                  },
      +                  "retrieve_with": {
      +                    "minLength": 1,
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "mode",
      +                  "omitted_fields",
      +                  "retrieve_with"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "rate_limit_remaining": {
      +            "anyOf": [
      +              {
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "request_id": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "schema_version": {
      +            "const": "1.0.0",
      +            "default": "1.0.0",
      +            "type": "string"
      +          },
      +          "scope_boundary": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "description": "Canonical schema § 0.6 — surfaces what this assembly produces vs not.",
      +                "properties": {
      +                  "not_in_scope": {
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "produced": {
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "recommended_companions": {
      +                    "anyOf": [
      +                      {
      +                        "items": {
      +                          "type": "string"
      +                        },
      +                        "type": "array"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  }
      +                },
      +                "required": [
      +                  "produced",
      +                  "not_in_scope"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "tier": {
      +            "enum": [
      +              "free",
      +              "paid"
      +            ],
      +            "type": "string"
      +          },
      +          "tier_upgrade": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "description": "Canonical schema § 0.7 — present on free-tier responses only.",
      +                "properties": {
      +                  "available_tiers": {
      +                    "items": {
      +                      "additionalProperties": false,
      +                      "description": "Canonical schema § 0.7 — single tier in the upgrade carousel.",
      +                      "properties": {
      +                        "billing": {
      +                          "enum": [
      +                            "one_off",
      +                            "monthly",
      +                            "annual"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "currency": {
      +                          "enum": [
      +                            "GBP",
      +                            "SGD",
      +                            "EUR",
      +                            "USD",
      +                            "CAD",
      +                            "AUD",
      +                            "NZD",
      +                            "MYR"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "display_name": {
      +                          "type": "string"
      +                        },
      +                        "price_local": {
      +                          "type": "number"
      +                        },
      +                        "tier_slug": {
      +                          "enum": [
      +                            "7_day_pass",
      +                            "solo",
      +                            "studio",
      +                            "practice"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "unlock_summary": {
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "tier_slug",
      +                        "display_name",
      +                        "price_local",
      +                        "currency",
      +                        "billing",
      +                        "unlock_summary"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "current_tier": {
      +                    "const": "free",
      +                    "default": "free",
      +                    "type": "string"
      +                  },
      +                  "pass_credit": {
      +                    "anyOf": [
      +                      {
      +                        "additionalProperties": false,
      +                        "description": "Canonical schema § 0.7 — pass-credit upgrade hook.",
      +                        "properties": {
      +                          "amount_local": {
      +                            "type": "number"
      +                          },
      +                          "applies_to": {
      +                            "const": "solo_first_month",
      +                            "default": "solo_first_month",
      +                            "type": "string"
      +                          },
      +                          "currency": {
      +                            "type": "string"
      +                          },
      +                          "redeemable_until": {
      +                            "type": "string"
      +                          }
      +                        },
      +                        "required": [
      +                          "amount_local",
      +                          "currency",
      +                          "redeemable_until"
      +                        ],
      +                        "type": "object"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "pricing_url": {
      +                    "default": "https://civilquants.com/pricing",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "available_tiers"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "tos_url": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "upgrade_hint": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "warranty_disclaimer": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          }
      +        },
      +        "required": [
      +          "request_id",
      +          "issued_at",
      +          "tier"
      +        ],
      +        "type": "object"
      +      },
      +      "data": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "assembly_ids": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "project_id": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "project_id",
      +              "assembly_ids"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "error": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "description": "Canonical schema § 0.4 — error payload returned in `MCPResponse.error`.",
      +            "properties": {
      +              "code": {
      +                "description": "Canonical schema § 0.5 catalogue.\n\nEach member maps to a documented `recoverable` flag (see\n`IS_RECOVERABLE`) — clients use the flag to decide retry vs surface.",
      +                "enum": [
      +                  "RATE_LIMIT_EXCEEDED",
      +                  "TIER_INSUFFICIENT",
      +                  "INVALID_INPUT",
      +                  "SCHEMA_VERSION_MISMATCH",
      +                  "SCHEMA_INVARIANT_VIOLATION",
      +                  "UPSTREAM_TIMEOUT",
      +                  "BACKEND_FAILURE",
      +                  "IP_BLOCKED",
      +                  "RESOURCE_NOT_FOUND",
      +                  "RENDER_FAILURE",
      +                  "OCR_LOW_CONFIDENCE",
      +                  "MANUAL_REVIEW_REQUIRED",
      +                  "ACCEPTANCE_REQUIRED",
      +                  "INVALID_TOKEN"
      +                ],
      +                "type": "string"
      +              },
      +              "details": {
      +                "anyOf": [
      +                  {
      +                    "additionalProperties": true,
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "message": {
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "recoverable": {
      +                "type": "boolean"
      +              },
      +              "retry_after_seconds": {
      +                "anyOf": [
      +                  {
      +                    "minimum": 0,
      +                    "type": "integer"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              }
      +            },
      +            "required": [
      +              "code",
      +              "message",
      +              "recoverable"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      }
      +    },
      +    "required": [
      +      "_meta"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "_meta": {
      +        "additionalProperties": false,
      +        "description": "Canonical schema § 0.2 — present on every MCPResponse.\n\nRequired fields: `schema_version`, `request_id`, `issued_at`, `tier`.\nThe free-tier-only fields (`upgrade_hint`, `tos_url`, `warranty_disclaimer`,\n`tier_upgrade`, `rate_limit_remaining`) are populated by the middleware\nwhen `tier == \"free\"`; absent on paid-tier responses.",
      +        "properties": {
      +          "deliverables": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "description": "Canonical schema § 0.3 — R2 signed URLs (24h TTL).",
      +                "properties": {
      +                  "docx_url": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "dxf_url": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "expires_at": {
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "pdf_url": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "xlsx_url": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  }
      +                },
      +                "required": [
      +                  "expires_at"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "document_id": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "hint": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "issued_at": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "output_mode": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "description": "Surfaces what a trimmed ``output_mode`` withheld from ``data``.\n\nA trimmed mode (``summary`` / ``boq`` / ``boq_with_backup``) withholds\nalready-computed fields to keep the chat payload small. The withheld value\nreads to a client agent as \"capability missing\" (the box-culvert \"geometry\nbuilder isn't firing\" scare) rather than \"pared for size\": ``drawing`` and\n``audit_trail`` appear as ``null``, ``boq_rows`` as an empty list ``[]``\n(its type forbids ``null``) — both indistinguishable from a genuine absent\nresult. This names the withheld fields and the exact mode that brings each\nback, so the value is unambiguous. Absent on the default ``full_json`` mode\n— nothing is withheld, nothing to point at.",
      +                "properties": {
      +                  "mode": {
      +                    "enum": [
      +                      "summary",
      +                      "boq",
      +                      "boq_with_backup"
      +                    ],
      +                    "type": "string"
      +                  },
      +                  "omitted_fields": {
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "minItems": 1,
      +                    "type": "array"
      +                  },
      +                  "retrieve_with": {
      +                    "minLength": 1,
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "mode",
      +                  "omitted_fields",
      +                  "retrieve_with"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "rate_limit_remaining": {
      +            "anyOf": [
      +              {
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "request_id": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "schema_version": {
      +            "const": "1.0.0",
      +            "default": "1.0.0",
      +            "type": "string"
      +          },
      +          "scope_boundary": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "description": "Canonical schema § 0.6 — surfaces what this assembly produces vs not.",
      +                "properties": {
      +                  "not_in_scope": {
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "produced": {
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "recommended_companions": {
      +                    "anyOf": [
      +                      {
      +                        "items": {
      +                          "type": "string"
      +                        },
      +                        "type": "array"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  }
      +                },
      +                "required": [
      +                  "produced",
      +                  "not_in_scope"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "tier": {
      +            "enum": [
      +              "free",
      +              "paid"
      +            ],
      +            "type": "string"
      +          },
      +          "tier_upgrade": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "description": "Canonical schema § 0.7 — present on free-tier responses only.",
      +                "properties": {
      +                  "available_tiers": {
      +                    "items": {
      +                      "additionalProperties": false,
      +                      "description": "Canonical schema § 0.7 — single tier in the upgrade carousel.",
      +                      "properties": {
      +                        "billing": {
      +                          "enum": [
      +                            "one_off",
      +                            "monthly",
      +                            "annual"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "currency": {
      +                          "enum": [
      +                            "GBP",
      +                            "SGD",
      +                            "EUR",
      +                            "USD",
      +                            "CAD",
      +                            "AUD",
      +                            "NZD",
      +                            "MYR"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "display_name": {
      +                          "type": "string"
      +                        },
      +                        "price_local": {
      +                          "type": "number"
      +                        },
      +                        "tier_slug": {
      +                          "enum": [
      +                            "7_day_pass",
      +                            "solo",
      +                            "studio",
      +                            "practice"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "unlock_summary": {
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "tier_slug",
      +                        "display_name",
      +                        "price_local",
      +                        "currency",
      +                        "billing",
      +                        "unlock_summary"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "current_tier": {
      +                    "const": "free",
      +                    "default": "free",
      +                    "type": "string"
      +                  },
      +                  "pass_credit": {
      +                    "anyOf": [
      +                      {
      +                        "additionalProperties": false,
      +                        "description": "Canonical schema § 0.7 — pass-credit upgrade hook.",
      +                        "properties": {
      +                          "amount_local": {
      +                            "type": "number"
      +                          },
      +                          "applies_to": {
      +                            "const": "solo_first_month",
      +                            "default": "solo_first_month",
      +                            "type": "string"
      +                          },
      +                          "currency": {
      +                            "type": "string"
      +                          },
      +                          "redeemable_until": {
      +                            "type": "string"
      +                          }
      +                        },
      +                        "required": [
      +                          "amount_local",
      +                          "currency",
      +                          "redeemable_until"
      +                        ],
      +                        "type": "object"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "pricing_url": {
      +                    "default": "https://civilquants.com/pricing",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "available_tiers"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "tos_url": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "upgrade_hint": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "warranty_disclaimer": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          }
      +        },
      +        "required": [
      +          "request_id",
      +          "issued_at",
      +          "tier"
      +        ],
      +        "type": "object"
      +      },
      +      "data": {
      +        "default": null,
      +        "title": "Data"
      +      },
      +      "error": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "description": "Canonical schema § 0.4 — error payload returned in `MCPResponse.error`.",
      +            "properties": {
      +              "code": {
      +                "description": "Canonical schema § 0.5 catalogue.\n\nEach member maps to a documented `recoverable` flag (see\n`IS_RECOVERABLE`) — clients use the flag to decide retry vs surface.",
      +                "enum": [
      +                  "RATE_LIMIT_EXCEEDED",
      +                  "TIER_INSUFFICIENT",
      +                  "INVALID_INPUT",
      +                  "SCHEMA_VERSION_MISMATCH",
      +                  "SCHEMA_INVARIANT_VIOLATION",
      +                  "UPSTREAM_TIMEOUT",
      +                  "BACKEND_FAILURE",
      +                  "IP_BLOCKED",
      +                  "RESOURCE_NOT_FOUND",
      +                  "RENDER_FAILURE",
      +                  "OCR_LOW_CONFIDENCE",
      +                  "MANUAL_REVIEW_REQUIRED",
      +                  "ACCEPTANCE_REQUIRED",
      +                  "INVALID_TOKEN"
      +                ],
      +                "type": "string"
      +              },
      +              "details": {
      +                "anyOf": [
      +                  {
      +                    "additionalProperties": true,
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "message": {
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "recoverable": {
      +                "type": "boolean"
      +              },
      +              "retry_after_seconds": {
      +                "anyOf": [
      +                  {
      +                    "minimum": 0,
      +                    "type": "integer"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              }
      +            },
      +            "required": [
      +              "code",
      +              "message",
      +              "recoverable"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      }
      +    },
      +    "required": [
      +      "_meta"
      +    ],
      +    "type": "object"
      +  }
      +]
  3. Changed1 schema field changed
    • changedOutput schema / properties / result / anyOf
      Previous value: -[
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "_meta": {
      -        "additionalProperties": false,
      -        "description": "Canonical schema § 0.2 — present on every MCPResponse.\n\nRequired fields: `schema_version`, `request_id`, `issued_at`, `tier`.\nThe free-tier-only fields (`upgrade_hint`, `tos_url`, `warranty_disclaimer`,\n`tier_upgrade`, `rate_limit_remaining`) are populated by the middleware\nwhen `tier == \"free\"`; absent on paid-tier responses.",
      -        "properties": {
      -          "deliverables": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "description": "Canonical schema § 0.3 — R2 signed URLs (24h TTL).",
      -                "properties": {
      -                  "docx_url": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "dxf_url": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "expires_at": {
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "pdf_url": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "xlsx_url": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  }
      -                },
      -                "required": [
      -                  "expires_at"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "document_id": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "issued_at": {
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "rate_limit_remaining": {
      -            "anyOf": [
      -              {
      -                "minimum": 0,
      -                "type": "integer"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "request_id": {
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "schema_version": {
      -            "const": "1.0.0",
      -            "default": "1.0.0",
      -            "type": "string"
      -          },
      -          "scope_boundary": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "description": "Canonical schema § 0.6 — surfaces what this assembly produces vs not.",
      -                "properties": {
      -                  "not_in_scope": {
      -                    "items": {
      -                      "type": "string"
      -                    },
      -                    "type": "array"
      -                  },
      -                  "produced": {
      -                    "items": {
      -                      "type": "string"
      -                    },
      -                    "type": "array"
      -                  },
      -                  "recommended_companions": {
      -                    "anyOf": [
      -                      {
      -                        "items": {
      -                          "type": "string"
      -                        },
      -                        "type": "array"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  }
      -                },
      -                "required": [
      -                  "produced",
      -                  "not_in_scope"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "tier": {
      -            "enum": [
      -              "free",
      -              "paid"
      -            ],
      -            "type": "string"
      -          },
      -          "tier_upgrade": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "description": "Canonical schema § 0.7 — present on free-tier responses only.",
      -                "properties": {
      -                  "available_tiers": {
      -                    "items": {
      -                      "additionalProperties": false,
      -                      "description": "Canonical schema § 0.7 — single tier in the upgrade carousel.",
      -                      "properties": {
      -                        "billing": {
      -                          "enum": [
      -                            "one_off",
      -                            "monthly",
      -                            "annual"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "currency": {
      -                          "enum": [
      -                            "GBP",
      -                            "SGD",
      -                            "EUR",
      -                            "USD",
      -                            "CAD",
      -                            "AUD",
      -                            "NZD",
      -                            "MYR"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "display_name": {
      -                          "type": "string"
      -                        },
      -                        "price_local": {
      -                          "type": "number"
      -                        },
      -                        "tier_slug": {
      -                          "enum": [
      -                            "7_day_pass",
      -                            "solo",
      -                            "studio",
      -                            "practice"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "unlock_summary": {
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "tier_slug",
      -                        "display_name",
      -                        "price_local",
      -                        "currency",
      -                        "billing",
      -                        "unlock_summary"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "type": "array"
      -                  },
      -                  "current_tier": {
      -                    "const": "free",
      -                    "default": "free",
      -                    "type": "string"
      -                  },
      -                  "pass_credit": {
      -                    "anyOf": [
      -                      {
      -                        "additionalProperties": false,
      -                        "description": "Canonical schema § 0.7 — pass-credit upgrade hook.",
      -                        "properties": {
      -                          "amount_local": {
      -                            "type": "number"
      -                          },
      -                          "applies_to": {
      -                            "const": "solo_first_month",
      -                            "default": "solo_first_month",
      -                            "type": "string"
      -                          },
      -                          "currency": {
      -                            "type": "string"
      -                          },
      -                          "redeemable_until": {
      -                            "type": "string"
      -                          }
      -                        },
      -                        "required": [
      -                          "amount_local",
      -                          "currency",
      -                          "redeemable_until"
      -                        ],
      -                        "type": "object"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "pricing_url": {
      -                    "default": "https://civilquants.com/pricing",
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "available_tiers"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "tos_url": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "upgrade_hint": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "warranty_disclaimer": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          }
      -        },
      -        "required": [
      -          "request_id",
      -          "issued_at",
      -          "tier"
      -        ],
      -        "type": "object"
      -      },
      -      "data": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "properties": {
      -              "assembly_ids": {
      -                "items": {
      -                  "type": "string"
      -                },
      -                "type": "array"
      -              },
      -              "project_id": {
      -                "type": "string"
      -              }
      -            },
      -            "required": [
      -              "project_id",
      -              "assembly_ids"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      },
      -      "error": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "description": "Canonical schema § 0.4 — error payload returned in `MCPResponse.error`.",
      -            "properties": {
      -              "code": {
      -                "description": "Canonical schema § 0.5 catalogue.\n\nEach member maps to a documented `recoverable` flag (see\n`IS_RECOVERABLE`) — clients use the flag to decide retry vs surface.",
      -                "enum": [
      -                  "RATE_LIMIT_EXCEEDED",
      -                  "TIER_INSUFFICIENT",
      -                  "INVALID_INPUT",
      -                  "SCHEMA_VERSION_MISMATCH",
      -                  "SCHEMA_INVARIANT_VIOLATION",
      -                  "UPSTREAM_TIMEOUT",
      -                  "BACKEND_FAILURE",
      -                  "IP_BLOCKED",
      -                  "RESOURCE_NOT_FOUND",
      -                  "RENDER_FAILURE",
      -                  "OCR_LOW_CONFIDENCE",
      -                  "MANUAL_REVIEW_REQUIRED",
      -                  "ACCEPTANCE_REQUIRED",
      -                  "INVALID_TOKEN"
      -                ],
      -                "type": "string"
      -              },
      -              "details": {
      -                "anyOf": [
      -                  {
      -                    "additionalProperties": true,
      -                    "type": "object"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null
      -              },
      -              "message": {
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "recoverable": {
      -                "type": "boolean"
      -              },
      -              "retry_after_seconds": {
      -                "anyOf": [
      -                  {
      -                    "minimum": 0,
      -                    "type": "integer"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null
      -              }
      -            },
      -            "required": [
      -              "code",
      -              "message",
      -              "recoverable"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      }
      -    },
      -    "required": [
      -      "_meta"
      -    ],
      -    "type": "object"
      -  },
      -  {
      -    "additionalProperties": false,
      -    "properties": {
      -      "_meta": {
      -        "additionalProperties": false,
      -        "description": "Canonical schema § 0.2 — present on every MCPResponse.\n\nRequired fields: `schema_version`, `request_id`, `issued_at`, `tier`.\nThe free-tier-only fields (`upgrade_hint`, `tos_url`, `warranty_disclaimer`,\n`tier_upgrade`, `rate_limit_remaining`) are populated by the middleware\nwhen `tier == \"free\"`; absent on paid-tier responses.",
      -        "properties": {
      -          "deliverables": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "description": "Canonical schema § 0.3 — R2 signed URLs (24h TTL).",
      -                "properties": {
      -                  "docx_url": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "dxf_url": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "expires_at": {
      -                    "minLength": 1,
      -                    "type": "string"
      -                  },
      -                  "pdf_url": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "xlsx_url": {
      -                    "anyOf": [
      -                      {
      -                        "type": "string"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  }
      -                },
      -                "required": [
      -                  "expires_at"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "document_id": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "issued_at": {
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "rate_limit_remaining": {
      -            "anyOf": [
      -              {
      -                "minimum": 0,
      -                "type": "integer"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "request_id": {
      -            "minLength": 1,
      -            "type": "string"
      -          },
      -          "schema_version": {
      -            "const": "1.0.0",
      -            "default": "1.0.0",
      -            "type": "string"
      -          },
      -          "scope_boundary": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "description": "Canonical schema § 0.6 — surfaces what this assembly produces vs not.",
      -                "properties": {
      -                  "not_in_scope": {
      -                    "items": {
      -                      "type": "string"
      -                    },
      -                    "type": "array"
      -                  },
      -                  "produced": {
      -                    "items": {
      -                      "type": "string"
      -                    },
      -                    "type": "array"
      -                  },
      -                  "recommended_companions": {
      -                    "anyOf": [
      -                      {
      -                        "items": {
      -                          "type": "string"
      -                        },
      -                        "type": "array"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  }
      -                },
      -                "required": [
      -                  "produced",
      -                  "not_in_scope"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "tier": {
      -            "enum": [
      -              "free",
      -              "paid"
      -            ],
      -            "type": "string"
      -          },
      -          "tier_upgrade": {
      -            "anyOf": [
      -              {
      -                "additionalProperties": false,
      -                "description": "Canonical schema § 0.7 — present on free-tier responses only.",
      -                "properties": {
      -                  "available_tiers": {
      -                    "items": {
      -                      "additionalProperties": false,
      -                      "description": "Canonical schema § 0.7 — single tier in the upgrade carousel.",
      -                      "properties": {
      -                        "billing": {
      -                          "enum": [
      -                            "one_off",
      -                            "monthly",
      -                            "annual"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "currency": {
      -                          "enum": [
      -                            "GBP",
      -                            "SGD",
      -                            "EUR",
      -                            "USD",
      -                            "CAD",
      -                            "AUD",
      -                            "NZD",
      -                            "MYR"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "display_name": {
      -                          "type": "string"
      -                        },
      -                        "price_local": {
      -                          "type": "number"
      -                        },
      -                        "tier_slug": {
      -                          "enum": [
      -                            "7_day_pass",
      -                            "solo",
      -                            "studio",
      -                            "practice"
      -                          ],
      -                          "type": "string"
      -                        },
      -                        "unlock_summary": {
      -                          "minLength": 1,
      -                          "type": "string"
      -                        }
      -                      },
      -                      "required": [
      -                        "tier_slug",
      -                        "display_name",
      -                        "price_local",
      -                        "currency",
      -                        "billing",
      -                        "unlock_summary"
      -                      ],
      -                      "type": "object"
      -                    },
      -                    "type": "array"
      -                  },
      -                  "current_tier": {
      -                    "const": "free",
      -                    "default": "free",
      -                    "type": "string"
      -                  },
      -                  "pass_credit": {
      -                    "anyOf": [
      -                      {
      -                        "additionalProperties": false,
      -                        "description": "Canonical schema § 0.7 — pass-credit upgrade hook.",
      -                        "properties": {
      -                          "amount_local": {
      -                            "type": "number"
      -                          },
      -                          "applies_to": {
      -                            "const": "solo_first_month",
      -                            "default": "solo_first_month",
      -                            "type": "string"
      -                          },
      -                          "currency": {
      -                            "type": "string"
      -                          },
      -                          "redeemable_until": {
      -                            "type": "string"
      -                          }
      -                        },
      -                        "required": [
      -                          "amount_local",
      -                          "currency",
      -                          "redeemable_until"
      -                        ],
      -                        "type": "object"
      -                      },
      -                      {
      -                        "type": "null"
      -                      }
      -                    ],
      -                    "default": null
      -                  },
      -                  "pricing_url": {
      -                    "default": "https://civilquants.com/pricing",
      -                    "type": "string"
      -                  }
      -                },
      -                "required": [
      -                  "available_tiers"
      -                ],
      -                "type": "object"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "tos_url": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "upgrade_hint": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          },
      -          "warranty_disclaimer": {
      -            "anyOf": [
      -              {
      -                "type": "string"
      -              },
      -              {
      -                "type": "null"
      -              }
      -            ],
      -            "default": null
      -          }
      -        },
      -        "required": [
      -          "request_id",
      -          "issued_at",
      -          "tier"
      -        ],
      -        "type": "object"
      -      },
      -      "data": {
      -        "default": null,
      -        "title": "Data"
      -      },
      -      "error": {
      -        "anyOf": [
      -          {
      -            "additionalProperties": false,
      -            "description": "Canonical schema § 0.4 — error payload returned in `MCPResponse.error`.",
      -            "properties": {
      -              "code": {
      -                "description": "Canonical schema § 0.5 catalogue.\n\nEach member maps to a documented `recoverable` flag (see\n`IS_RECOVERABLE`) — clients use the flag to decide retry vs surface.",
      -                "enum": [
      -                  "RATE_LIMIT_EXCEEDED",
      -                  "TIER_INSUFFICIENT",
      -                  "INVALID_INPUT",
      -                  "SCHEMA_VERSION_MISMATCH",
      -                  "SCHEMA_INVARIANT_VIOLATION",
      -                  "UPSTREAM_TIMEOUT",
      -                  "BACKEND_FAILURE",
      -                  "IP_BLOCKED",
      -                  "RESOURCE_NOT_FOUND",
      -                  "RENDER_FAILURE",
      -                  "OCR_LOW_CONFIDENCE",
      -                  "MANUAL_REVIEW_REQUIRED",
      -                  "ACCEPTANCE_REQUIRED",
      -                  "INVALID_TOKEN"
      -                ],
      -                "type": "string"
      -              },
      -              "details": {
      -                "anyOf": [
      -                  {
      -                    "additionalProperties": true,
      -                    "type": "object"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null
      -              },
      -              "message": {
      -                "minLength": 1,
      -                "type": "string"
      -              },
      -              "recoverable": {
      -                "type": "boolean"
      -              },
      -              "retry_after_seconds": {
      -                "anyOf": [
      -                  {
      -                    "minimum": 0,
      -                    "type": "integer"
      -                  },
      -                  {
      -                    "type": "null"
      -                  }
      -                ],
      -                "default": null
      -              }
      -            },
      -            "required": [
      -              "code",
      -              "message",
      -              "recoverable"
      -            ],
      -            "type": "object"
      -          },
      -          {
      -            "type": "null"
      -          }
      -        ],
      -        "default": null
      -      }
      -    },
      -    "required": [
      -      "_meta"
      -    ],
      -    "type": "object"
      -  }
      -]New value: +[
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "_meta": {
      +        "additionalProperties": false,
      +        "description": "Canonical schema § 0.2 — present on every MCPResponse.\n\nRequired fields: `schema_version`, `request_id`, `issued_at`, `tier`.\nThe free-tier-only fields (`upgrade_hint`, `tos_url`, `warranty_disclaimer`,\n`tier_upgrade`, `rate_limit_remaining`) are populated by the middleware\nwhen `tier == \"free\"`; absent on paid-tier responses.",
      +        "properties": {
      +          "deliverables": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "description": "Canonical schema § 0.3 — R2 signed URLs (24h TTL).",
      +                "properties": {
      +                  "docx_url": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "dxf_url": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "expires_at": {
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "pdf_url": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "xlsx_url": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  }
      +                },
      +                "required": [
      +                  "expires_at"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "document_id": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "hint": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "issued_at": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "rate_limit_remaining": {
      +            "anyOf": [
      +              {
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "request_id": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "schema_version": {
      +            "const": "1.0.0",
      +            "default": "1.0.0",
      +            "type": "string"
      +          },
      +          "scope_boundary": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "description": "Canonical schema § 0.6 — surfaces what this assembly produces vs not.",
      +                "properties": {
      +                  "not_in_scope": {
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "produced": {
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "recommended_companions": {
      +                    "anyOf": [
      +                      {
      +                        "items": {
      +                          "type": "string"
      +                        },
      +                        "type": "array"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  }
      +                },
      +                "required": [
      +                  "produced",
      +                  "not_in_scope"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "tier": {
      +            "enum": [
      +              "free",
      +              "paid"
      +            ],
      +            "type": "string"
      +          },
      +          "tier_upgrade": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "description": "Canonical schema § 0.7 — present on free-tier responses only.",
      +                "properties": {
      +                  "available_tiers": {
      +                    "items": {
      +                      "additionalProperties": false,
      +                      "description": "Canonical schema § 0.7 — single tier in the upgrade carousel.",
      +                      "properties": {
      +                        "billing": {
      +                          "enum": [
      +                            "one_off",
      +                            "monthly",
      +                            "annual"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "currency": {
      +                          "enum": [
      +                            "GBP",
      +                            "SGD",
      +                            "EUR",
      +                            "USD",
      +                            "CAD",
      +                            "AUD",
      +                            "NZD",
      +                            "MYR"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "display_name": {
      +                          "type": "string"
      +                        },
      +                        "price_local": {
      +                          "type": "number"
      +                        },
      +                        "tier_slug": {
      +                          "enum": [
      +                            "7_day_pass",
      +                            "solo",
      +                            "studio",
      +                            "practice"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "unlock_summary": {
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "tier_slug",
      +                        "display_name",
      +                        "price_local",
      +                        "currency",
      +                        "billing",
      +                        "unlock_summary"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "current_tier": {
      +                    "const": "free",
      +                    "default": "free",
      +                    "type": "string"
      +                  },
      +                  "pass_credit": {
      +                    "anyOf": [
      +                      {
      +                        "additionalProperties": false,
      +                        "description": "Canonical schema § 0.7 — pass-credit upgrade hook.",
      +                        "properties": {
      +                          "amount_local": {
      +                            "type": "number"
      +                          },
      +                          "applies_to": {
      +                            "const": "solo_first_month",
      +                            "default": "solo_first_month",
      +                            "type": "string"
      +                          },
      +                          "currency": {
      +                            "type": "string"
      +                          },
      +                          "redeemable_until": {
      +                            "type": "string"
      +                          }
      +                        },
      +                        "required": [
      +                          "amount_local",
      +                          "currency",
      +                          "redeemable_until"
      +                        ],
      +                        "type": "object"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "pricing_url": {
      +                    "default": "https://civilquants.com/pricing",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "available_tiers"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "tos_url": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "upgrade_hint": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "warranty_disclaimer": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          }
      +        },
      +        "required": [
      +          "request_id",
      +          "issued_at",
      +          "tier"
      +        ],
      +        "type": "object"
      +      },
      +      "data": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "properties": {
      +              "assembly_ids": {
      +                "items": {
      +                  "type": "string"
      +                },
      +                "type": "array"
      +              },
      +              "project_id": {
      +                "type": "string"
      +              }
      +            },
      +            "required": [
      +              "project_id",
      +              "assembly_ids"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      },
      +      "error": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "description": "Canonical schema § 0.4 — error payload returned in `MCPResponse.error`.",
      +            "properties": {
      +              "code": {
      +                "description": "Canonical schema § 0.5 catalogue.\n\nEach member maps to a documented `recoverable` flag (see\n`IS_RECOVERABLE`) — clients use the flag to decide retry vs surface.",
      +                "enum": [
      +                  "RATE_LIMIT_EXCEEDED",
      +                  "TIER_INSUFFICIENT",
      +                  "INVALID_INPUT",
      +                  "SCHEMA_VERSION_MISMATCH",
      +                  "SCHEMA_INVARIANT_VIOLATION",
      +                  "UPSTREAM_TIMEOUT",
      +                  "BACKEND_FAILURE",
      +                  "IP_BLOCKED",
      +                  "RESOURCE_NOT_FOUND",
      +                  "RENDER_FAILURE",
      +                  "OCR_LOW_CONFIDENCE",
      +                  "MANUAL_REVIEW_REQUIRED",
      +                  "ACCEPTANCE_REQUIRED",
      +                  "INVALID_TOKEN"
      +                ],
      +                "type": "string"
      +              },
      +              "details": {
      +                "anyOf": [
      +                  {
      +                    "additionalProperties": true,
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "message": {
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "recoverable": {
      +                "type": "boolean"
      +              },
      +              "retry_after_seconds": {
      +                "anyOf": [
      +                  {
      +                    "minimum": 0,
      +                    "type": "integer"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              }
      +            },
      +            "required": [
      +              "code",
      +              "message",
      +              "recoverable"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      }
      +    },
      +    "required": [
      +      "_meta"
      +    ],
      +    "type": "object"
      +  },
      +  {
      +    "additionalProperties": false,
      +    "properties": {
      +      "_meta": {
      +        "additionalProperties": false,
      +        "description": "Canonical schema § 0.2 — present on every MCPResponse.\n\nRequired fields: `schema_version`, `request_id`, `issued_at`, `tier`.\nThe free-tier-only fields (`upgrade_hint`, `tos_url`, `warranty_disclaimer`,\n`tier_upgrade`, `rate_limit_remaining`) are populated by the middleware\nwhen `tier == \"free\"`; absent on paid-tier responses.",
      +        "properties": {
      +          "deliverables": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "description": "Canonical schema § 0.3 — R2 signed URLs (24h TTL).",
      +                "properties": {
      +                  "docx_url": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "dxf_url": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "expires_at": {
      +                    "minLength": 1,
      +                    "type": "string"
      +                  },
      +                  "pdf_url": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "xlsx_url": {
      +                    "anyOf": [
      +                      {
      +                        "type": "string"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  }
      +                },
      +                "required": [
      +                  "expires_at"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "document_id": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "hint": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "issued_at": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "rate_limit_remaining": {
      +            "anyOf": [
      +              {
      +                "minimum": 0,
      +                "type": "integer"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "request_id": {
      +            "minLength": 1,
      +            "type": "string"
      +          },
      +          "schema_version": {
      +            "const": "1.0.0",
      +            "default": "1.0.0",
      +            "type": "string"
      +          },
      +          "scope_boundary": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "description": "Canonical schema § 0.6 — surfaces what this assembly produces vs not.",
      +                "properties": {
      +                  "not_in_scope": {
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "produced": {
      +                    "items": {
      +                      "type": "string"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "recommended_companions": {
      +                    "anyOf": [
      +                      {
      +                        "items": {
      +                          "type": "string"
      +                        },
      +                        "type": "array"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  }
      +                },
      +                "required": [
      +                  "produced",
      +                  "not_in_scope"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "tier": {
      +            "enum": [
      +              "free",
      +              "paid"
      +            ],
      +            "type": "string"
      +          },
      +          "tier_upgrade": {
      +            "anyOf": [
      +              {
      +                "additionalProperties": false,
      +                "description": "Canonical schema § 0.7 — present on free-tier responses only.",
      +                "properties": {
      +                  "available_tiers": {
      +                    "items": {
      +                      "additionalProperties": false,
      +                      "description": "Canonical schema § 0.7 — single tier in the upgrade carousel.",
      +                      "properties": {
      +                        "billing": {
      +                          "enum": [
      +                            "one_off",
      +                            "monthly",
      +                            "annual"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "currency": {
      +                          "enum": [
      +                            "GBP",
      +                            "SGD",
      +                            "EUR",
      +                            "USD",
      +                            "CAD",
      +                            "AUD",
      +                            "NZD",
      +                            "MYR"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "display_name": {
      +                          "type": "string"
      +                        },
      +                        "price_local": {
      +                          "type": "number"
      +                        },
      +                        "tier_slug": {
      +                          "enum": [
      +                            "7_day_pass",
      +                            "solo",
      +                            "studio",
      +                            "practice"
      +                          ],
      +                          "type": "string"
      +                        },
      +                        "unlock_summary": {
      +                          "minLength": 1,
      +                          "type": "string"
      +                        }
      +                      },
      +                      "required": [
      +                        "tier_slug",
      +                        "display_name",
      +                        "price_local",
      +                        "currency",
      +                        "billing",
      +                        "unlock_summary"
      +                      ],
      +                      "type": "object"
      +                    },
      +                    "type": "array"
      +                  },
      +                  "current_tier": {
      +                    "const": "free",
      +                    "default": "free",
      +                    "type": "string"
      +                  },
      +                  "pass_credit": {
      +                    "anyOf": [
      +                      {
      +                        "additionalProperties": false,
      +                        "description": "Canonical schema § 0.7 — pass-credit upgrade hook.",
      +                        "properties": {
      +                          "amount_local": {
      +                            "type": "number"
      +                          },
      +                          "applies_to": {
      +                            "const": "solo_first_month",
      +                            "default": "solo_first_month",
      +                            "type": "string"
      +                          },
      +                          "currency": {
      +                            "type": "string"
      +                          },
      +                          "redeemable_until": {
      +                            "type": "string"
      +                          }
      +                        },
      +                        "required": [
      +                          "amount_local",
      +                          "currency",
      +                          "redeemable_until"
      +                        ],
      +                        "type": "object"
      +                      },
      +                      {
      +                        "type": "null"
      +                      }
      +                    ],
      +                    "default": null
      +                  },
      +                  "pricing_url": {
      +                    "default": "https://civilquants.com/pricing",
      +                    "type": "string"
      +                  }
      +                },
      +                "required": [
      +                  "available_tiers"
      +                ],
      +                "type": "object"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "tos_url": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "upgrade_hint": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          },
      +          "warranty_disclaimer": {
      +            "anyOf": [
      +              {
      +                "type": "string"
      +              },
      +              {
      +                "type": "null"
      +              }
      +            ],
      +            "default": null
      +          }
      +        },
      +        "required": [
      +          "request_id",
      +          "issued_at",
      +          "tier"
      +        ],
      +        "type": "object"
      +      },
      +      "data": {
      +        "default": null,
      +        "title": "Data"
      +      },
      +      "error": {
      +        "anyOf": [
      +          {
      +            "additionalProperties": false,
      +            "description": "Canonical schema § 0.4 — error payload returned in `MCPResponse.error`.",
      +            "properties": {
      +              "code": {
      +                "description": "Canonical schema § 0.5 catalogue.\n\nEach member maps to a documented `recoverable` flag (see\n`IS_RECOVERABLE`) — clients use the flag to decide retry vs surface.",
      +                "enum": [
      +                  "RATE_LIMIT_EXCEEDED",
      +                  "TIER_INSUFFICIENT",
      +                  "INVALID_INPUT",
      +                  "SCHEMA_VERSION_MISMATCH",
      +                  "SCHEMA_INVARIANT_VIOLATION",
      +                  "UPSTREAM_TIMEOUT",
      +                  "BACKEND_FAILURE",
      +                  "IP_BLOCKED",
      +                  "RESOURCE_NOT_FOUND",
      +                  "RENDER_FAILURE",
      +                  "OCR_LOW_CONFIDENCE",
      +                  "MANUAL_REVIEW_REQUIRED",
      +                  "ACCEPTANCE_REQUIRED",
      +                  "INVALID_TOKEN"
      +                ],
      +                "type": "string"
      +              },
      +              "details": {
      +                "anyOf": [
      +                  {
      +                    "additionalProperties": true,
      +                    "type": "object"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              },
      +              "message": {
      +                "minLength": 1,
      +                "type": "string"
      +              },
      +              "recoverable": {
      +                "type": "boolean"
      +              },
      +              "retry_after_seconds": {
      +                "anyOf": [
      +                  {
      +                    "minimum": 0,
      +                    "type": "integer"
      +                  },
      +                  {
      +                    "type": "null"
      +                  }
      +                ],
      +                "default": null
      +              }
      +            },
      +            "required": [
      +              "code",
      +              "message",
      +              "recoverable"
      +            ],
      +            "type": "object"
      +          },
      +          {
      +            "type": "null"
      +          }
      +        ],
      +        "default": null
      +      }
      +    },
      +    "required": [
      +      "_meta"
      +    ],
      +    "type": "object"
      +  }
      +]
  4. First observed

TDQS

A4.6/5.0
Behavior4/5

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

Annotations already indicate non-destructive write. Description adds behavioral context: never overwrites, uses revision naming, and mentions paid-tier restriction. No contradiction.

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

Conciseness4/5

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

Single dense paragraph that front-loads the purpose. Every sentence provides value, though could be more structured for readability. No wasted words.

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

Completeness5/5

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

Given tool complexity, sibling context, and existing output schema, the description covers creation, revision workflow, alternative tools, and re-finding. Also addresses payment restrictions.

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

Parameters4/5

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

Schema coverage is 100%, so baseline 3. Description adds value by explaining how to use the name parameter for revision and mentioning assemblies array, but does not detail each field.

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

Purpose5/5

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

The description clearly states the tool persists a project with its assembly list and explicitly notes each call creates a new project, never overwriting. This distinguishes it from siblings like get_project or recompute_project.

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

Usage Guidelines5/5

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

Provides explicit guidance on when to use: for revision, call get_project first, amend, then save with a revision-suffixed name; for a different assembly type, use resolve_assembly_from_description. Also notes paid tier requirement.

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

Try in Browser

Glama MCP Gateway

Add one secure layer between your agents and this server.

Resources