{
  "openapi": "3.1.0",
  "info": {
    "title": "PrintRelay Agent Manufacturing Advice and Backlog API",
    "version": "0.5.0",
    "description": "Free manufacturing knowledge, preliminary DFM and uncalibrated engineering-budget previews. Owned CAD/specification workflows can create nonbinding pending_review intents for manufacturing, quotation services, or free specialist DFM review. An intent is not a firm offer, charge, capacity booking, supplier purchase or print authorization. Paid services require a later explicit scope/fee agreement; no payment or fulfillment endpoint exists. Public advice: /api/advice and /api/advice/mcp. External account MCP: /api/mcp using a PrintRelay API key. Native /mcp uses Sites OAuth and adds digest-based key registration/list/revoke. Never supply reserved platform identity headers. Use a named User-Agent; the hosting edge may reject default Python-urllib user agents. No deadline or review turnaround promise. Browser key creation is one-time and not idempotent after a lost response."
  },
  "servers": [
    {
      "url": "/",
      "description": "This PrintRelay site"
    }
  ],
  "security": [
    {
      "PrintRelayApiKey": []
    }
  ],
  "paths": {
    "/api/health": {
      "get": {
        "operationId": "getReadiness",
        "summary": "Read intake and integration readiness",
        "security": [],
        "responses": {
          "200": {
            "description": "Database responds and an object-storage binding is configured. This does not prove supplier or payment readiness.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Health"
                }
              }
            }
          },
          "503": {
            "description": "Intake storage is unavailable.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Health"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/requests": {
      "get": {
        "operationId": "listRequests",
        "summary": "List your retained quote requests",
        "description": "Returns at most 20 requests for the authenticated owner, newest first. CAD files and email are private to the owner.",
        "responses": {
          "200": {
            "description": "Your requests.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "requests"
                  ],
                  "properties": {
                    "requests": {
                      "type": "array",
                      "maxItems": 20,
                      "items": {
                        "$ref": "#/components/schemas/PrintRequest"
                      }
                    }
                  }
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Origin rejected, or browser sign-in required.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Storage or database unavailable; retry with the same Idempotency-Key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "createRequest",
        "summary": "Upload CAD and save request requirements",
        "description": "Private intake only: upload does not authorize sharing with providers, payment or production. Maximum 20 retained requests and 100 MiB per owner; global pilot capacity is also enforced. A repeated Idempotency-Key with identical normalized metadata and file returns the original request; changed content returns 409. File upload recovery can take a retry. An interrupted upload can be deleted after 10 minutes. Browser session mutations require a matching Origin header; API-key calls do not. Use the separate specification and quote-jobs endpoints to authorize named-provider comparisons.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[A-Za-z0-9._:-]{8,100}$"
            },
            "description": "Generate once per intended request; reuse unchanged across retries."
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "multipart/form-data": {
              "schema": {
                "type": "object",
                "required": [
                  "email",
                  "material",
                  "quantity",
                  "units",
                  "country",
                  "postal_code",
                  "desired_speed",
                  "file",
                  "consent"
                ],
                "properties": {
                  "email": {
                    "type": "string",
                    "format": "email"
                  },
                  "material": {
                    "type": "string",
                    "enum": [
                      "PLA",
                      "PETG",
                      "PA12"
                    ]
                  },
                  "quantity": {
                    "type": "string",
                    "pattern": "^[0-9]{1,3}$",
                    "description": "Integer quantity from 1 through 100, encoded as a multipart text field."
                  },
                  "units": {
                    "type": "string",
                    "enum": [
                      "mm",
                      "inch"
                    ]
                  },
                  "country": {
                    "type": "string",
                    "pattern": "^[A-Za-z]{2}$"
                  },
                  "postal_code": {
                    "type": "string",
                    "minLength": 1,
                    "maxLength": 20
                  },
                  "desired_speed": {
                    "type": "string",
                    "enum": [
                      "standard",
                      "fastest"
                    ]
                  },
                  "notes": {
                    "type": "string",
                    "maxLength": 2000
                  },
                  "file": {
                    "type": "string",
                    "format": "binary",
                    "description": "One non-empty STL, STEP, STP, 3MF, or OBJ file, at most 10 MiB. Structural checks do not certify manufacturability."
                  },
                  "consent": {
                    "type": "string",
                    "const": "true",
                    "description": "Confirm you have rights to submit this CAD file and consent to quote-request processing. No print order or payment is placed."
                  }
                }
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "CAD stored; quote request received.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PrintRequest"
                }
              }
            }
          },
          "200": {
            "description": "Original completed request returned without another upload.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PrintRequest"
                }
              }
            },
            "headers": {
              "Idempotency-Replayed": {
                "schema": {
                  "const": "true"
                }
              }
            }
          },
          "400": {
            "description": "Invalid metadata, CAD contents, missing consent, missing file, or invalid idempotency key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Conflicting idempotency key, upload in progress, failed prior upload, or request state changed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            },
            "headers": {
              "Retry-After": {
                "description": "Present for in-progress requests.",
                "schema": {
                  "type": "string"
                }
              }
            }
          },
          "413": {
            "description": "File exceeds 10 MiB or multipart body exceeds 10 MiB plus 64 KiB.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "A multipart/form-data body is required.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Owner or global upload capacity reached.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Origin rejected, or browser sign-in required.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Storage or database unavailable; retry with the same Idempotency-Key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/requests/{id}": {
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string",
            "pattern": "^req_[a-f0-9-]{36}$"
          }
        }
      ],
      "get": {
        "operationId": "getRequest",
        "summary": "Read one of your quote requests",
        "responses": {
          "200": {
            "description": "Request details.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PrintRequest"
                }
              }
            }
          },
          "404": {
            "description": "No request with this ID belongs to the authenticated owner.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Origin rejected, or browser sign-in required.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Storage or database unavailable; retry with the same Idempotency-Key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "delete": {
        "operationId": "deleteRequest",
        "summary": "Remove an uncommitted request and CAD file",
        "description": "Delete the owned CAD and active intake/specification/provider-quote records only after all active backlog intents have been cancelled. The CAS guard prevents deleting source CAD while an intent is created concurrently. Durable cancelled order/specification/estimate/review snapshots remain in the account history; no supplier copies are deleted.",
        "responses": {
          "200": {
            "description": "CAD and request deleted.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "id",
                    "deleted"
                  ],
                  "properties": {
                    "id": {
                      "type": "string"
                    },
                    "deleted": {
                      "const": true
                    }
                  }
                }
              }
            }
          },
          "404": {
            "description": "No request with this ID belongs to the authenticated owner.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Active backlog intent requires cancellation, or source request state changed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Origin rejected, or browser sign-in required.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Storage or database unavailable; retry with the same Idempotency-Key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/requests/{id}/file": {
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string",
            "pattern": "^req_[a-f0-9-]{36}$"
          }
        }
      ],
      "get": {
        "operationId": "downloadCad",
        "summary": "Download your original CAD file",
        "responses": {
          "200": {
            "description": "Attachment, private and never cached.",
            "headers": {
              "Content-Disposition": {
                "schema": {
                  "type": "string"
                }
              },
              "Content-Length": {
                "schema": {
                  "type": "string"
                }
              }
            },
            "content": {
              "application/octet-stream": {
                "schema": {
                  "type": "string",
                  "format": "binary"
                }
              }
            }
          },
          "404": {
            "description": "Request or stored file unavailable to this owner.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "File upload or deletion is in progress, or upload failed.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Origin rejected, or browser sign-in required.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Storage or database unavailable; retry with the same Idempotency-Key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/requests/{id}/specification": {
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string",
            "pattern": "^req_[a-f0-9-]{36}$"
          }
        }
      ],
      "get": {
        "operationId": "listSpecifications",
        "summary": "List your immutable manufacturing specifications",
        "responses": {
          "200": {
            "description": "Up to 20 specifications, newest first.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "specifications": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Specification"
                      },
                      "maxItems": 20
                    },
                    "latest": {
                      "oneOf": [
                        {
                          "$ref": "#/components/schemas/Specification"
                        },
                        {
                          "type": "null"
                        }
                      ]
                    }
                  },
                  "required": [
                    "specifications",
                    "latest"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Origin rejected, or browser sign-in required.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Storage or database unavailable; retry with the same Idempotency-Key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request is missing or belongs to another owner.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "put": {
        "operationId": "setManufacturingSpecification",
        "summary": "Pin exact manufacturing choices for an uploaded part",
        "description": "Only received requests may be specified. Identical normalized specifications replay the existing record; changed choices create a new immutable fingerprint. No supplier is contacted. Maximum JSON body 16 KiB.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SpecificationInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "New immutable specification saved.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "specification": {
                      "$ref": "#/components/schemas/Specification"
                    },
                    "replayed": {
                      "const": false
                    }
                  },
                  "required": [
                    "specification",
                    "replayed"
                  ]
                }
              }
            }
          },
          "200": {
            "description": "Identical existing specification returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "specification": {
                      "$ref": "#/components/schemas/Specification"
                    },
                    "replayed": {
                      "const": true
                    }
                  },
                  "required": [
                    "specification",
                    "replayed"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid JSON or empty body.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Upload not ready, request changed or 20-specification limit reached.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "JSON body exceeds 16 KiB.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Send application/json.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Unsupported fields or incomplete manufacturing choices; issues may identify incomplete fields.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "required": [
                        "code",
                        "message"
                      ],
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    },
                    "issues": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/Issue"
                      }
                    },
                    "specification": {
                      "type": "object"
                    }
                  },
                  "required": [
                    "error"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Origin rejected, or browser sign-in required.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Storage or database unavailable; retry with the same Idempotency-Key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request is missing or belongs to another owner.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/requests/{id}/quote-jobs": {
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string",
            "pattern": "^req_[a-f0-9-]{36}$"
          }
        }
      ],
      "get": {
        "operationId": "getQuoteJobs",
        "summary": "Read named-provider comparison progress",
        "responses": {
          "200": {
            "description": "Up to 100 retained jobs.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "jobs": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/QuoteJob"
                      },
                      "maxItems": 100
                    }
                  },
                  "required": [
                    "jobs"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Origin rejected, or browser sign-in required.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Storage or database unavailable; retry with the same Idempotency-Key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request is missing or belongs to another owner.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "requestProviderComparison",
        "summary": "Authorize and queue named-provider quotes for an exact specification",
        "description": "Does not directly contact a supplier, place an order or start a print. Uses verified persistent normal buyer accounts; missing accounts yield pending_account, not guest checkout. Browser setup and authenticated supplier access are required for execution. The request/specification/provider combination is unique; retrying the same payload returns existing jobs. Maximum five providers per call, 25 new jobs per owner per UTC day and global pilot limits. Maximum body 4 KiB.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/QuoteJobInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "One or more new jobs saved; this is not a supplier quote.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "jobs": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/QuoteJob"
                      }
                    },
                    "replayed": {
                      "type": "boolean"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "jobs",
                    "replayed",
                    "message"
                  ]
                }
              }
            }
          },
          "200": {
            "description": "All requested jobs already existed and are returned.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "jobs": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/QuoteJob"
                      }
                    },
                    "replayed": {
                      "type": "boolean"
                    },
                    "message": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "jobs",
                    "replayed",
                    "message"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Invalid JSON or empty body.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request or specification is missing or not owned by the caller.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "CAD request is not ready.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Body exceeds 4 KiB.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Send application/json.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Missing named-provider upload permission, invalid fingerprint/provider list or untracked field.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Pilot job limit or concurrent state change; may include jobs already saved. Retry the same provider list without duplicating jobs.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "error": {
                      "type": "object",
                      "required": [
                        "code",
                        "message"
                      ],
                      "properties": {
                        "code": {
                          "type": "string"
                        },
                        "message": {
                          "type": "string"
                        }
                      }
                    },
                    "jobs": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/QuoteJob"
                      }
                    }
                  },
                  "required": [
                    "error",
                    "jobs"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Origin rejected, or browser sign-in required.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Storage or database unavailable; retry with the same Idempotency-Key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/requests/{id}/quotes": {
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string",
            "pattern": "^req_[a-f0-9-]{36}$"
          }
        }
      ],
      "get": {
        "operationId": "getProviderQuotes",
        "summary": "Read captured quote evidence and current completeness",
        "description": "Returns observed results only. Prices are fresh for 15 minutes and must match the exact specification, currency and complete landed costs. Unknown supplier expiry or delivery can permit price comparison but prevent ordering. A hard deadline requires committed delivery evidence. ordering_enabled is always false. No new supplier request is made by this read.",
        "responses": {
          "200": {
            "description": "Up to 100 observed results, newest first; can be empty.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "quotes": {
                      "type": "array",
                      "items": {
                        "$ref": "#/components/schemas/ProviderQuote"
                      },
                      "maxItems": 100
                    },
                    "ordering_enabled": {
                      "const": false
                    }
                  },
                  "required": [
                    "quotes",
                    "ordering_enabled"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Origin rejected, or browser sign-in required.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Storage or database unavailable; retry with the same Idempotency-Key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request is missing or belongs to another owner.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/requests/{id}/preflight": {
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string",
            "pattern": "^req_[a-f0-9-]{36}$"
          }
        }
      ],
      "get": {
        "operationId": "getCadPreflight",
        "summary": "Inspect owned CAD without modifying or transmitting it",
        "description": "Requires a received request and recomputes SHA-256 of the stored R2 bytes against the authoritative upload hash before analysis. Uses the request's explicitly declared mm/inch units. Never repairs or changes CAD, contacts a supplier or certifies printability.",
        "responses": {
          "200": {
            "description": "Deterministic bounded observations for hash-verified CAD.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "request_id": {
                      "type": "string"
                    },
                    "file_sha256": {
                      "type": "string",
                      "pattern": "^[a-f0-9]{64}$"
                    },
                    "preflight": {
                      "$ref": "#/components/schemas/CadPreflight"
                    }
                  },
                  "required": [
                    "request_id",
                    "file_sha256",
                    "preflight"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "CAD fails strict geometry/parser validation; error.code identifies the failure.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "File unavailable, upload unfinished or stored CAD hash/length/units do not match the request.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "CAD exceeds the preflight size limit.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Missing or invalid authentication.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Origin rejected, or browser sign-in required.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Storage or database unavailable; retry with the same Idempotency-Key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Request is missing or belongs to another owner.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/capabilities": {
      "get": {
        "operationId": "getCapabilities",
        "summary": "Public machine capabilities, authentication paths, limits and next actions",
        "security": [],
        "responses": {
          "200": {
            "description": "Discovery document. Inspect capability statuses and health; HTTP 200 is not a supplier-readiness assertion.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Capabilities"
                }
              }
            }
          }
        }
      }
    },
    "/api/mcp": {
      "post": {
        "operationId": "invokeMcp",
        "summary": "API-key MCP Streamable HTTP transport",
        "description": "Use a conforming MCP client. Current 2026-07-28 requests use per-request protocol metadata; legacy initialize is supported. Stateless Streamable HTTP; JSON or SSE response framing according to negotiated protocol. No GET event stream or sessions. /tools.json is the exact tool input/output schema catalog. Every request authenticates a PrintRelay API key before protocol processing. Native platform OAuth connects separately at /mcp. Tool business failures use isError with structuredContent; protocol errors use JSON-RPC error. Do not blindly retry mutations.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "method"
                ],
                "properties": {
                  "jsonrpc": {
                    "const": "2.0"
                  },
                  "id": {
                    "type": [
                      "integer",
                      "string"
                    ]
                  },
                  "method": {
                    "type": "string"
                  },
                  "params": {
                    "type": "object"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "JSON-RPC response. Use tools/list schemas and inspect tool isError and structuredContent.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "202": {
            "description": "Accepted notification; no response body."
          },
          "400": {
            "description": "Malformed protocol request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "401": {
            "description": "Missing, invalid or revoked API key.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Disallowed browser Origin.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "MCP body exceeds 3 MiB; decoded CAD tool limit is 2 MiB.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported content type.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "406": {
            "description": "MCP Accept header incompatible.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable; preserve write identity.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/tools.json": {
      "get": {
        "operationId": "getToolCatalog",
        "summary": "Public MCP input/output JSON Schema catalog",
        "security": [],
        "responses": {
          "200": {
            "description": "Ten exact tool definitions including annotations.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "schema_version",
                    "tools"
                  ],
                  "properties": {
                    "schema_version": {
                      "const": "1.0"
                    },
                    "tools": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/examples/calibration-cube-20mm.preflight.json": {
      "get": {
        "operationId": "getPublicExample",
        "summary": "Real measured public calibration fixture; no account or quote",
        "security": [],
        "responses": {
          "200": {
            "description": "Actual geometry preflight with source CAD SHA-256, explicitly an example.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "schema_version",
                    "example",
                    "source",
                    "file_sha256",
                    "preflight"
                  ],
                  "properties": {
                    "schema_version": {
                      "const": "1.0"
                    },
                    "example": {
                      "const": true
                    },
                    "source": {
                      "type": "string"
                    },
                    "file_sha256": {
                      "type": "string",
                      "pattern": "^[a-f0-9]{64}$"
                    },
                    "description": {
                      "type": "string"
                    },
                    "preflight": {
                      "$ref": "#/components/schemas/CadPreflight"
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/tools-native.json": {
      "get": {
        "operationId": "getNativeToolCatalog",
        "summary": "Native Sites OAuth tool catalog including hash-only account onboarding",
        "security": [],
        "responses": {
          "200": {
            "description": "Thirteen definitions. Key management is native OAuth only.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "required": [
                    "schema_version",
                    "authentication",
                    "tools"
                  ],
                  "properties": {
                    "schema_version": {
                      "const": "1.0"
                    },
                    "authentication": {
                      "const": "native_sites_oauth"
                    },
                    "tools": {
                      "type": "array",
                      "items": {
                        "type": "object"
                      }
                    }
                  }
                }
              }
            }
          }
        }
      }
    },
    "/api/advice": {
      "get": {
        "operationId": "getManufacturingAdvice",
        "summary": "Read free general sourced manufacturing guidance",
        "security": [],
        "parameters": [
          {
            "name": "topic",
            "in": "query",
            "schema": {
              "enum": [
                "getting_started",
                "mesh",
                "fdm",
                "materials",
                "fits",
                "sls",
                "costs"
              ]
            }
          },
          {
            "name": "process",
            "in": "query",
            "schema": {
              "type": "string",
              "maxLength": 80,
              "minLength": 1,
              "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
            }
          },
          {
            "name": "material",
            "in": "query",
            "schema": {
              "type": "string",
              "maxLength": 80,
              "minLength": 1,
              "pattern": "^[^\\u0000-\\u001f\\u007f]+$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/ManufacturingAdvice"
                }
              }
            }
          },
          "422": {
            "description": "Invalid arguments or missing explicit acknowledgement.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Database/storage unavailable. Reconcile and retry the identical idempotency key and content.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/requests/{id}/advice": {
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string",
            "pattern": "^req_[a-f0-9-]{36}$"
          }
        }
      ],
      "get": {
        "operationId": "analyzeManufacturability",
        "summary": "Free preliminary rule-based DFM observations. A specialist report exists only after an actual requested review.",
        "parameters": [
          {
            "name": "spec_fingerprint",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-f0-9]{64}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/PreliminaryDfm"
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON or invalid request body.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Authentication is missing, invalid or revoked.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Owned resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Idempotency, active duplicate, reference, review or source-CAD state conflict. Read existing state; never change the key to bypass a conflict.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds the bounded input limit.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Invalid arguments or missing explicit acknowledgement.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Database/storage unavailable. Reconcile and retry the identical idempotency key and content.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/requests/{id}/estimate": {
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string",
            "pattern": "^req_[a-f0-9-]{36}$"
          }
        }
      ],
      "get": {
        "operationId": "estimatePrintOptions",
        "summary": "Uncalibrated internal planning assumptions, not a supplier quote, landed total or delivery promise. Fingerprint binds the exact CAD/specification, canonical preflight report and model version.",
        "parameters": [
          {
            "name": "spec_fingerprint",
            "in": "query",
            "required": true,
            "schema": {
              "type": "string",
              "pattern": "^[a-f0-9]{64}$"
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/BudgetaryEstimate"
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON or invalid request body.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Authentication is missing, invalid or revoked.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Owned resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Idempotency, active duplicate, reference, review or source-CAD state conflict. Read existing state; never change the key to bypass a conflict.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds the bounded input limit.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Invalid arguments or missing explicit acknowledgement.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Database/storage unavailable. Reconcile and retry the identical idempotency key and content.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/orders": {
      "get": {
        "operationId": "listOrders",
        "summary": "List up to 100 owned durable backlog intents, including cancelled records",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "orders": {
                      "type": "array",
                      "maxItems": 100,
                      "items": {
                        "$ref": "#/components/schemas/BacklogOrder"
                      }
                    },
                    "ordering_enabled": {
                      "const": false
                    }
                  },
                  "required": [
                    "orders",
                    "ordering_enabled"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Authentication is missing, invalid or revoked.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Database/storage unavailable. Reconcile and retry the identical idempotency key and content.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      },
      "post": {
        "operationId": "placeOrder",
        "summary": "Accept a nonbinding request into the review backlog",
        "description": "Pins owned CAD/specification plus optional exact estimate/quote snapshots and optional USD budget preference. No charge, firm offer, capacity booking, supplier submission or print authorization. Same key and content safely replay, including after cancellation; changed content conflicts. A different key for the same active request/spec/type conflicts with existing order_id. At most 20 active/100 lifetime intents per account. A cancelled intent can be requested again only with a new key. DFM review is free; quotation/printing prices and service fees require later agreement.",
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 100,
              "pattern": "^[A-Za-z0-9._:-]+$"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/BacklogOrderInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "New pending_review intent stored.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "order": {
                      "$ref": "#/components/schemas/BacklogOrder"
                    },
                    "replayed": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "order"
                  ]
                }
              }
            }
          },
          "200": {
            "description": "Existing immutable intent replayed, possibly cancelled.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "order": {
                      "$ref": "#/components/schemas/BacklogOrder"
                    },
                    "replayed": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "order"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON or invalid request body.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Authentication is missing, invalid or revoked.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Origin or credential scope rejected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Owned resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Idempotency, active duplicate, reference, review or source-CAD state conflict. Read existing state; never change the key to bypass a conflict.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds the bounded input limit.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Send application/json.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Invalid arguments or missing explicit acknowledgement.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "429": {
            "description": "Account or pilot backlog limit reached.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Database/storage unavailable. Reconcile and retry the identical idempotency key and content.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/orders/{id}": {
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string",
            "pattern": "^ord_[a-f0-9-]{36}$"
          }
        }
      ],
      "get": {
        "operationId": "getOrder",
        "summary": "Read an owned intent and any recorded specialist report",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "order": {
                      "$ref": "#/components/schemas/BacklogOrder"
                    }
                  },
                  "required": [
                    "order"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Authentication is missing, invalid or revoked.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Owned resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Database/storage unavailable. Reconcile and retry the identical idempotency key and content.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/v1/orders/{id}/cancel": {
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string",
            "pattern": "^ord_[a-f0-9-]{36}$"
          }
        }
      ],
      "post": {
        "operationId": "cancelOrder",
        "summary": "Idempotently cancel an owned nonbinding backlog intent",
        "description": "Only pending_review/reviewed states can cancel. Does not contact any supplier or printer. Releases the active CAD deletion guard but retains immutable order/spec/estimate/review snapshots. No body or Idempotency-Key is required.",
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "order": {
                      "$ref": "#/components/schemas/BacklogOrder"
                    },
                    "replayed": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "order"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Authentication is missing, invalid or revoked.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "403": {
            "description": "Origin or credential scope rejected.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Owned resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Idempotency, active duplicate, reference, review or source-CAD state conflict. Read existing state; never change the key to bypass a conflict.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Database/storage unavailable. Reconcile and retry the identical idempotency key and content.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/operator/orders": {
      "get": {
        "operationId": "listPendingSpecialistOrders",
        "summary": "Operator-only bounded oldest-pending review queue",
        "security": [
          {
            "PrintRelayOperator": []
          }
        ],
        "parameters": [
          {
            "name": "order_type",
            "in": "query",
            "schema": {
              "enum": [
                "manufacturing",
                "quotation",
                "dfm_review"
              ]
            }
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "orders": {
                      "type": "array",
                      "maxItems": 50,
                      "items": {
                        "type": "object"
                      }
                    },
                    "order_type": {
                      "type": [
                        "string",
                        "null"
                      ]
                    },
                    "limit": {
                      "const": 50
                    },
                    "has_more": {
                      "type": "boolean"
                    },
                    "queue_order": {
                      "const": "oldest_pending_first"
                    },
                    "continuation": {
                      "type": "string"
                    },
                    "ordering_enabled": {
                      "const": false
                    },
                    "instructions": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "orders",
                    "order_type",
                    "limit",
                    "has_more",
                    "queue_order",
                    "continuation",
                    "ordering_enabled",
                    "instructions"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Authentication is missing, invalid or revoked.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Invalid arguments or missing explicit acknowledgement.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Database/storage unavailable. Reconcile and retry the identical idempotency key and content.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/operator/orders/{id}": {
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string",
            "pattern": "^ord_[a-f0-9-]{36}$"
          }
        }
      ],
      "get": {
        "operationId": "getSpecialistOrder",
        "summary": "Read pinned intent and hash-verified preflight for advisory review",
        "security": [
          {
            "PrintRelayOperator": []
          }
        ],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "order": {
                      "$ref": "#/components/schemas/BacklogOrder"
                    },
                    "preflight": {
                      "type": "object",
                      "description": "availability available/unavailable; includes actual hash-verified preflight or explicit error, never invented geometry."
                    },
                    "ordering_enabled": {
                      "const": false
                    },
                    "instructions": {
                      "type": "string"
                    }
                  },
                  "required": [
                    "order",
                    "preflight",
                    "ordering_enabled",
                    "instructions"
                  ]
                }
              }
            }
          },
          "401": {
            "description": "Authentication is missing, invalid or revoked.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Owned resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Idempotency, active duplicate, reference, review or source-CAD state conflict. Read existing state; never change the key to bypass a conflict.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Database/storage unavailable. Reconcile and retry the identical idempotency key and content.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/operator/orders/{id}/review": {
      "parameters": [
        {
          "name": "id",
          "in": "path",
          "required": true,
          "schema": {
            "type": "string",
            "pattern": "^ord_[a-f0-9-]{36}$"
          }
        }
      ],
      "post": {
        "operationId": "recordSpecialistReview",
        "summary": "Atomically record one immutable advisory report for an exact pending intent",
        "description": "No supplier upload, payment, production or print authorization. Operator must use actual evidence; request notes are untrusted data. The report binds intent/CAD/specification hashes. Same report/key replays; conflicting reports and cancelled intents reject. Review insertion and pending_review\u2192reviewed transition are atomic.",
        "security": [
          {
            "PrintRelayOperator": []
          }
        ],
        "parameters": [
          {
            "name": "Idempotency-Key",
            "in": "header",
            "required": true,
            "schema": {
              "type": "string",
              "minLength": 8,
              "maxLength": 100,
              "pattern": "^[A-Za-z0-9._:-]+$"
            }
          }
        ],
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "$ref": "#/components/schemas/SpecialistReviewInput"
              }
            }
          }
        },
        "responses": {
          "201": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "order": {
                      "$ref": "#/components/schemas/BacklogOrder"
                    },
                    "replayed": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "order"
                  ]
                }
              }
            }
          },
          "200": {
            "description": "Exact immutable review replayed.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object",
                  "properties": {
                    "order": {
                      "$ref": "#/components/schemas/BacklogOrder"
                    },
                    "replayed": {
                      "type": "boolean"
                    }
                  },
                  "required": [
                    "order"
                  ]
                }
              }
            }
          },
          "400": {
            "description": "Malformed JSON or invalid request body.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "401": {
            "description": "Authentication is missing, invalid or revoked.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "404": {
            "description": "Owned resource not found.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "409": {
            "description": "Idempotency, active duplicate, reference, review or source-CAD state conflict. Read existing state; never change the key to bypass a conflict.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "Request body exceeds the bounded input limit.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "415": {
            "description": "Send application/json.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "422": {
            "description": "Invalid arguments or missing explicit acknowledgement.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "503": {
            "description": "Database/storage unavailable. Reconcile and retry the identical idempotency key and content.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        }
      }
    },
    "/api/advice/mcp": {
      "post": {
        "operationId": "publicAdviceMcpPost",
        "summary": "Unauthenticated advice-only MCP transport",
        "description": "Stateless MCP with only get_printrelay_status and get_manufacturing_advice. Owned CAD, account keys and backlog tools are not registered here. Supports conforming 2026-07-28 and legacy SDK clients; no browser cross-origin requests.",
        "requestBody": {
          "required": true,
          "content": {
            "application/json": {
              "schema": {
                "type": "object",
                "required": [
                  "jsonrpc",
                  "method"
                ],
                "properties": {
                  "jsonrpc": {
                    "const": "2.0"
                  },
                  "id": {
                    "type": [
                      "integer",
                      "string"
                    ]
                  },
                  "method": {
                    "type": "string"
                  },
                  "params": {
                    "type": "object"
                  }
                }
              }
            }
          }
        },
        "responses": {
          "200": {
            "description": "JSON-RPC response. Use tools/list schemas and inspect tool isError and structuredContent.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "202": {
            "description": "Accepted notification; no response body."
          },
          "400": {
            "description": "Malformed protocol request.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "403": {
            "description": "Disallowed browser Origin.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          },
          "413": {
            "description": "MCP body exceeds 3 MiB; decoded CAD tool limit is 2 MiB.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "415": {
            "description": "Unsupported content type.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "406": {
            "description": "MCP Accept header incompatible.",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          },
          "503": {
            "description": "Service unavailable; preserve write identity.",
            "content": {
              "application/json": {
                "schema": {
                  "$ref": "#/components/schemas/Error"
                }
              }
            }
          }
        },
        "security": []
      }
    },
    "/tools-public.json": {
      "get": {
        "operationId": "getPublicAdviceToolCatalog",
        "summary": "Exact schemas for the two unauthenticated advice tools",
        "security": [],
        "responses": {
          "200": {
            "description": "Successful response",
            "content": {
              "application/json": {
                "schema": {
                  "type": "object"
                }
              }
            }
          }
        }
      }
    }
  },
  "components": {
    "securitySchemes": {
      "PrintRelayApiKey": {
        "type": "http",
        "scheme": "bearer",
        "bearerFormat": "pr_key_<64 hex characters>",
        "description": "A PrintRelay API key issued once in the signed-in website. Keep it secret; every request is scoped to the issuing user."
      },
      "PrintRelayOperator": {
        "type": "http",
        "scheme": "bearer",
        "description": "Separate operator token, never a customer API key. Enables advisory review only; cannot pay, buy or print."
      }
    },
    "schemas": {
      "Error": {
        "type": "object",
        "required": [
          "error"
        ],
        "properties": {
          "error": {
            "type": "object",
            "required": [
              "code",
              "message"
            ],
            "properties": {
              "code": {
                "type": "string"
              },
              "message": {
                "type": "string"
              }
            }
          }
        }
      },
      "PrintRequest": {
        "type": "object",
        "required": [
          "id",
          "status",
          "filename",
          "file_bytes",
          "file_sha256",
          "email",
          "material",
          "quantity",
          "units",
          "country",
          "postal_code",
          "desired_speed",
          "notes",
          "created_at",
          "updated_at",
          "quote",
          "payment_status",
          "fulfillment_status",
          "message"
        ],
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^req_[a-f0-9-]{36}$"
          },
          "status": {
            "type": "string",
            "enum": [
              "uploading",
              "received",
              "upload_failed",
              "deleting"
            ]
          },
          "filename": {
            "type": "string"
          },
          "file_bytes": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10485760
          },
          "file_sha256": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "email": {
            "type": "string",
            "format": "email"
          },
          "material": {
            "type": "string",
            "enum": [
              "PLA",
              "PETG",
              "PA12"
            ]
          },
          "quantity": {
            "type": "integer",
            "minimum": 1,
            "maximum": 100
          },
          "units": {
            "type": "string",
            "enum": [
              "mm",
              "inch"
            ]
          },
          "country": {
            "type": "string",
            "pattern": "^[A-Z]{2}$"
          },
          "postal_code": {
            "type": "string",
            "minLength": 1,
            "maxLength": 20
          },
          "desired_speed": {
            "type": "string",
            "enum": [
              "standard",
              "fastest"
            ]
          },
          "notes": {
            "type": "string",
            "maxLength": 2000
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "quote": {
            "type": "null"
          },
          "payment_status": {
            "const": "not_requested"
          },
          "fulfillment_status": {
            "const": "not_submitted"
          },
          "message": {
            "type": "string"
          }
        }
      },
      "ApiKeyMetadata": {
        "type": "object",
        "required": [
          "id",
          "prefix",
          "name",
          "created_at",
          "revoked_at"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "prefix": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "revoked_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        }
      },
      "NewApiKey": {
        "type": "object",
        "required": [
          "id",
          "api_key",
          "prefix",
          "name",
          "created_at",
          "message"
        ],
        "properties": {
          "id": {
            "type": "string"
          },
          "prefix": {
            "type": "string"
          },
          "name": {
            "type": "string"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "api_key": {
            "type": "string",
            "pattern": "^pr_key_[a-f0-9]{64}$"
          },
          "message": {
            "type": "string"
          }
        }
      },
      "Health": {
        "type": "object",
        "required": [
          "service",
          "intake",
          "database",
          "storage",
          "supplier_quotes",
          "payments",
          "fulfillment",
          "backlog"
        ],
        "properties": {
          "service": {
            "const": "PrintRelay"
          },
          "intake": {
            "enum": [
              "available",
              "unavailable"
            ]
          },
          "database": {
            "type": "boolean"
          },
          "storage": {
            "type": "boolean"
          },
          "supplier_quotes": {
            "const": "not_connected"
          },
          "payments": {
            "const": "disabled"
          },
          "fulfillment": {
            "const": "disabled"
          },
          "backlog": {
            "type": "string",
            "enum": [
              "available",
              "unavailable"
            ]
          }
        }
      },
      "Issue": {
        "type": "object",
        "properties": {
          "code": {
            "type": "string"
          },
          "field": {
            "type": "string"
          },
          "scope": {
            "type": "string",
            "enum": [
              "quote",
              "order"
            ]
          }
        },
        "required": [
          "code",
          "field"
        ]
      },
      "ManufacturingOptionsInput": {
        "oneOf": [
          {
            "type": "object",
            "properties": {
              "policy": {
                "const": "provider_standard"
              },
              "layer_height_mm": {
                "const": "provider_standard"
              },
              "infill_percent": {
                "const": "provider_standard"
              },
              "tolerances": {
                "const": "provider_standard"
              }
            },
            "required": [
              "policy"
            ],
            "additionalProperties": false
          },
          {
            "type": "object",
            "properties": {
              "policy": {
                "const": "specified"
              },
              "layer_height_mm": {
                "oneOf": [
                  {
                    "type": "number",
                    "exclusiveMinimum": 0,
                    "maximum": 5
                  },
                  {
                    "const": "provider_standard"
                  }
                ]
              },
              "infill_percent": {
                "oneOf": [
                  {
                    "type": "number",
                    "minimum": 0,
                    "maximum": 100
                  },
                  {
                    "const": "provider_standard"
                  }
                ]
              },
              "tolerances": {
                "type": "string",
                "minLength": 1,
                "maxLength": 500
              }
            },
            "required": [
              "policy",
              "layer_height_mm",
              "infill_percent",
              "tolerances"
            ],
            "additionalProperties": false
          }
        ],
        "description": "Choose provider_standard only with customer permission. The specified policy requires every option; tolerances may explicitly say provider_standard."
      },
      "SpecificationInput": {
        "type": "object",
        "properties": {
          "process": {
            "type": "string",
            "minLength": 1,
            "maxLength": 80
          },
          "material_grade": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "finish": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "color": {
            "type": "string",
            "minLength": 1,
            "maxLength": 120
          },
          "required_arrival_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "manufacturing_options": {
            "$ref": "#/components/schemas/ManufacturingOptionsInput"
          },
          "destination": {
            "type": "object",
            "properties": {
              "address_line1": {
                "type": "string",
                "maxLength": 200
              },
              "address_line2": {
                "type": "string",
                "maxLength": 200
              },
              "city": {
                "type": "string",
                "maxLength": 100
              },
              "region": {
                "type": "string",
                "maxLength": 100
              },
              "recipient": {
                "type": "string",
                "maxLength": 160
              }
            },
            "additionalProperties": false
          }
        },
        "required": [
          "process",
          "material_grade",
          "finish",
          "color",
          "required_arrival_at",
          "manufacturing_options"
        ],
        "additionalProperties": false,
        "description": "CAD hash, units, quantity, material family, notes and country/postal code are inherited from the request and cannot be overridden. required_arrival_at must be explicitly supplied; null means no deadline. Partial address fields are allowed for quotes, but recipient, city and address_line1 are needed for order completeness."
      },
      "CanonicalSpecification": {
        "type": "object",
        "properties": {
          "version": {
            "const": 1
          },
          "requirements": {
            "type": "string"
          },
          "manufacturing_options": {
            "$ref": "#/components/schemas/ManufacturingOptionsInput"
          },
          "cad_sha256": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "process": {
            "type": "string"
          },
          "material": {
            "type": "object",
            "properties": {
              "family": {
                "type": "string"
              },
              "grade": {
                "type": "string"
              }
            },
            "required": [
              "family",
              "grade"
            ]
          },
          "units": {
            "type": "string",
            "enum": [
              "mm",
              "inch"
            ]
          },
          "quantity": {
            "type": "integer",
            "minimum": 1
          },
          "finish": {
            "type": "string"
          },
          "color": {
            "type": "string"
          },
          "destination": {
            "type": "object",
            "properties": {
              "country": {
                "type": "string",
                "pattern": "^[A-Z]{2}$"
              },
              "postal_code": {
                "type": "string"
              },
              "address_line1": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "address_line2": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "city": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "region": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "recipient": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "country",
              "postal_code",
              "address_line1",
              "address_line2",
              "city",
              "region",
              "recipient"
            ]
          },
          "required_arrival_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          }
        },
        "required": [
          "version",
          "requirements",
          "manufacturing_options",
          "cad_sha256",
          "process",
          "material",
          "units",
          "quantity",
          "finish",
          "color",
          "destination",
          "required_arrival_at"
        ]
      },
      "Specification": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "request_id": {
            "type": "string"
          },
          "spec_fingerprint": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "spec": {
            "$ref": "#/components/schemas/CanonicalSpecification"
          },
          "complete_for_quote": {
            "const": true
          },
          "complete_for_order": {
            "type": "boolean"
          },
          "issues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Issue"
            }
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "request_id",
          "spec_fingerprint",
          "spec",
          "complete_for_quote",
          "complete_for_order",
          "issues",
          "created_at"
        ]
      },
      "QuoteJobInput": {
        "type": "object",
        "properties": {
          "spec_fingerprint": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "providers": {
            "type": "array",
            "items": {
              "type": "string",
              "enum": [
                "craftcloud",
                "treatstock",
                "xometry",
                "jlc3dp",
                "pcbway"
              ]
            },
            "minItems": 1,
            "maxItems": 5,
            "uniqueItems": true
          },
          "allow_provider_upload": {
            "const": true
          }
        },
        "required": [
          "spec_fingerprint",
          "providers",
          "allow_provider_upload"
        ],
        "additionalProperties": false,
        "description": "Requires customer permission to share this exact CAD and specification with every named provider. Authorizes quotes only, never purchase or printing."
      },
      "QuoteJob": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "request_id": {
            "type": "string"
          },
          "specification_id": {
            "type": "string"
          },
          "spec_fingerprint": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "provider": {
            "type": "string",
            "enum": [
              "craftcloud",
              "treatstock",
              "xometry",
              "jlc3dp",
              "pcbway"
            ]
          },
          "buyer_account_ref": {
            "type": [
              "string",
              "null"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "pending_account",
              "queued",
              "claimed",
              "incomplete",
              "completed"
            ],
            "description": "pending_account lacks a verified persistent buyer identity. queued awaits work, claimed has a temporary worker lease, incomplete needs more evidence, completed recorded a comparison result. A job does not prove a connected browser or a live quote."
          },
          "attempts": {
            "type": "integer",
            "minimum": 0
          },
          "lease_until": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "allow_provider_upload": {
            "const": true
          },
          "consent_version": {
            "type": "string"
          },
          "consent_at": {
            "type": "string",
            "format": "date-time"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "ordering_enabled": {
            "const": false
          }
        },
        "required": [
          "id",
          "request_id",
          "specification_id",
          "spec_fingerprint",
          "provider",
          "buyer_account_ref",
          "status",
          "attempts",
          "lease_until",
          "allow_provider_upload",
          "consent_version",
          "consent_at",
          "created_at",
          "updated_at",
          "ordering_enabled"
        ]
      },
      "ObservedQuote": {
        "type": "object",
        "properties": {
          "version": {
            "const": 1
          },
          "provider": {
            "type": [
              "string",
              "null"
            ]
          },
          "quote_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "quote_url": {
            "type": [
              "string",
              "null"
            ],
            "format": "uri"
          },
          "source_type": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "browser",
              "api",
              null
            ]
          },
          "evidence_ref": {
            "type": [
              "string",
              "null"
            ]
          },
          "captured_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "expires_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "comparison_fresh_until": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "delivery_status": {
            "type": "string",
            "enum": [
              "known",
              "delivery_unknown"
            ]
          },
          "spec_fingerprint": {
            "type": [
              "string",
              "null"
            ],
            "pattern": "^[a-f0-9]{64}$"
          },
          "configuration": {
            "type": "object",
            "properties": {
              "spec_fingerprint": {
                "type": [
                  "string",
                  "null"
                ]
              },
              "manufacturing_options_confirmed": {
                "type": "boolean"
              },
              "requirements_status": {
                "type": [
                  "string",
                  "null"
                ],
                "enum": [
                  "acknowledged",
                  "none",
                  "needs_review",
                  null
                ]
              },
              "evidence_ref": {
                "type": [
                  "string",
                  "null"
                ]
              }
            },
            "required": [
              "spec_fingerprint",
              "manufacturing_options_confirmed",
              "requirements_status",
              "evidence_ref"
            ]
          },
          "money": {
            "type": "object",
            "properties": {
              "currency": {
                "type": [
                  "string",
                  "null"
                ],
                "pattern": "^[A-Z]{3}$"
              },
              "items_minor": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "shipping_minor": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "tax_minor": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "other_fees_minor": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "landed_total_minor": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 0,
                "maximum": 9007199254740991
              },
              "shipping_status": {
                "type": [
                  "string",
                  "null"
                ],
                "enum": [
                  "included",
                  "calculated",
                  null
                ]
              },
              "tax_status": {
                "type": [
                  "string",
                  "null"
                ],
                "enum": [
                  "included",
                  "calculated",
                  "exempt",
                  null
                ]
              },
              "fees_complete": {
                "type": "boolean"
              }
            },
            "required": [
              "currency",
              "items_minor",
              "shipping_minor",
              "tax_minor",
              "other_fees_minor",
              "landed_total_minor",
              "shipping_status",
              "tax_status",
              "fees_complete"
            ]
          },
          "timing": {
            "type": "object",
            "properties": {
              "production_ready_at": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "delivery_earliest_at": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "delivery_latest_at": {
                "type": [
                  "string",
                  "null"
                ],
                "format": "date-time"
              },
              "delivery_basis": {
                "type": [
                  "string",
                  "null"
                ],
                "enum": [
                  "provider_estimate",
                  "provider_committed",
                  null
                ]
              }
            },
            "required": [
              "production_ready_at",
              "delivery_earliest_at",
              "delivery_latest_at",
              "delivery_basis"
            ]
          }
        },
        "required": [
          "version",
          "provider",
          "quote_id",
          "quote_url",
          "source_type",
          "evidence_ref",
          "captured_at",
          "expires_at",
          "comparison_fresh_until",
          "delivery_status",
          "spec_fingerprint",
          "configuration",
          "money",
          "timing"
        ]
      },
      "ProviderQuote": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string"
          },
          "job_id": {
            "type": "string"
          },
          "request_id": {
            "type": "string"
          },
          "spec_fingerprint": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "provider": {
            "type": "string",
            "enum": [
              "craftcloud",
              "treatstock",
              "xometry",
              "jlc3dp",
              "pcbway"
            ]
          },
          "buyer_account_ref": {
            "type": "string"
          },
          "quote": {
            "$ref": "#/components/schemas/ObservedQuote"
          },
          "quote_fingerprint": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "comparison_valid": {
            "type": "boolean"
          },
          "orderable": {
            "type": "boolean",
            "description": "Completeness assessment only. Does not authorize purchase and ordering_enabled remains false."
          },
          "ordering_enabled": {
            "const": false
          },
          "requires_checkout_revalidation": {
            "type": "boolean"
          },
          "comparison_fresh_until": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "delivery_status": {
            "type": "string",
            "enum": [
              "known",
              "delivery_unknown"
            ]
          },
          "status": {
            "type": "string",
            "enum": [
              "incomplete",
              "verified_quote",
              "not_orderable"
            ]
          },
          "issues": {
            "type": "array",
            "items": {
              "$ref": "#/components/schemas/Issue"
            }
          },
          "evidence": {
            "type": "object",
            "properties": {
              "source_url": {
                "type": "string",
                "format": "uri"
              },
              "sha256": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "text": {
                "type": "string"
              }
            },
            "required": [
              "source_url",
              "sha256",
              "text"
            ]
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          }
        },
        "required": [
          "id",
          "job_id",
          "request_id",
          "spec_fingerprint",
          "provider",
          "buyer_account_ref",
          "quote",
          "quote_fingerprint",
          "comparison_valid",
          "orderable",
          "ordering_enabled",
          "requires_checkout_revalidation",
          "comparison_fresh_until",
          "delivery_status",
          "status",
          "issues",
          "evidence",
          "created_at"
        ]
      },
      "CadPreflight": {
        "type": "object",
        "properties": {
          "schema_version": {
            "const": 1
          },
          "format": {
            "type": "string",
            "enum": [
              "stl",
              "step",
              "stp",
              "3mf",
              "obj"
            ]
          },
          "units": {
            "type": "string",
            "enum": [
              "mm",
              "inch"
            ]
          },
          "unit_scale_to_mm": {
            "enum": [
              1,
              25.4
            ]
          },
          "file_bytes": {
            "type": "integer",
            "minimum": 1,
            "maximum": 10485760
          },
          "certifies_printability": {
            "const": false
          },
          "limitations": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "warnings": {
            "type": "array",
            "items": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "string"
                },
                "message": {
                  "type": "string"
                }
              },
              "required": [
                "code",
                "message"
              ]
            }
          },
          "status": {
            "type": "string",
            "enum": [
              "mesh_checked",
              "bounds_check_only"
            ]
          },
          "bounds_checked": {
            "type": "boolean"
          },
          "encoding": {
            "type": [
              "string",
              "null"
            ],
            "enum": [
              "ascii",
              "binary",
              null
            ]
          },
          "bounds_mm": {
            "oneOf": [
              {
                "type": "object",
                "properties": {
                  "min": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 3,
                    "maxItems": 3
                  },
                  "max": {
                    "type": "array",
                    "items": {
                      "type": "number"
                    },
                    "minItems": 3,
                    "maxItems": 3
                  }
                },
                "required": [
                  "min",
                  "max"
                ]
              },
              {
                "type": "null"
              }
            ]
          },
          "extents_mm": {
            "oneOf": [
              {
                "type": "array",
                "items": {
                  "type": "number"
                },
                "minItems": 3,
                "maxItems": 3
              },
              {
                "type": "null"
              }
            ]
          },
          "triangle_count": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 1
          },
          "degenerate_triangle_count": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0
          },
          "topology": {
            "type": "object",
            "properties": {
              "checked": {
                "type": "boolean"
              },
              "triangle_limit": {
                "const": 30000
              },
              "method": {
                "const": "exact_coordinate_edge_incidence"
              },
              "vertex_count": {
                "type": "integer",
                "minimum": 0
              },
              "edge_count": {
                "type": "integer",
                "minimum": 0
              },
              "boundary_edge_count": {
                "type": "integer",
                "minimum": 0
              },
              "non_manifold_edge_count": {
                "type": "integer",
                "minimum": 0
              },
              "inconsistent_winding_edge_count": {
                "type": "integer",
                "minimum": 0
              },
              "duplicate_triangle_count": {
                "type": "integer",
                "minimum": 0
              },
              "connected_component_count": {
                "type": "integer",
                "minimum": 0
              },
              "watertight_edge_check": {
                "type": "boolean"
              },
              "edge_manifold": {
                "type": "boolean"
              },
              "orientation_consistent": {
                "type": "boolean"
              },
              "vertex_manifold_checked": {
                "const": false
              },
              "self_intersections_checked": {
                "const": false
              }
            },
            "required": [
              "checked"
            ]
          },
          "volume": {
            "type": "object",
            "properties": {
              "checked": {
                "type": "boolean"
              },
              "signed_mm3": {
                "type": [
                  "number",
                  "null"
                ]
              },
              "enclosed_estimate_mm3": {
                "type": [
                  "number",
                  "null"
                ],
                "minimum": 0
              },
              "interpretation": {
                "type": "string",
                "enum": [
                  "not_checked",
                  "not_reliable_as_enclosed_volume",
                  "positive_winding_estimate",
                  "negative_winding_estimate"
                ]
              },
              "is_printability_proof": {
                "const": false
              }
            },
            "required": [
              "checked",
              "signed_mm3",
              "enclosed_estimate_mm3",
              "interpretation",
              "is_printability_proof"
            ]
          }
        },
        "required": [
          "schema_version",
          "format",
          "units",
          "unit_scale_to_mm",
          "file_bytes",
          "certifies_printability",
          "limitations",
          "warnings",
          "status",
          "bounds_checked",
          "encoding",
          "bounds_mm",
          "extents_mm",
          "triangle_count",
          "degenerate_triangle_count",
          "topology",
          "volume"
        ],
        "description": "STL observations only; never certification. Strict finite-coordinate/grammar/length checks, positive extents and degeneracy observations up to 10 MiB. Edge/volume checks stop above 30000 triangles. Unsupported STEP/STP/3MF/OBJ return bounds_check_only with bounds_checked=false and null geometry measurements. Open or inconsistent meshes have no enclosed-volume estimate. No wall-thickness, vertex-manifold or self-intersection proof."
      },
      "Capabilities": {
        "type": "object",
        "required": [
          "schema_version",
          "service",
          "observed_at",
          "endpoints",
          "authentication",
          "limits",
          "capabilities",
          "health",
          "next_actions"
        ],
        "properties": {
          "schema_version": {
            "const": "1.0"
          },
          "service": {
            "const": "PrintRelay"
          },
          "version": {
            "type": "string"
          },
          "observed_at": {
            "type": "string",
            "format": "date-time"
          },
          "endpoints": {
            "type": "object",
            "additionalProperties": {
              "type": "string"
            }
          },
          "authentication": {
            "type": "object"
          },
          "limits": {
            "type": "object"
          },
          "capabilities": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "id",
                "status",
                "reason"
              ],
              "properties": {
                "id": {
                  "type": "string"
                },
                "status": {
                  "type": "string",
                  "enum": [
                    "available",
                    "unavailable",
                    "requires_buyer_session",
                    "not_verified",
                    "disabled"
                  ]
                },
                "reason": {
                  "type": "string"
                }
              }
            }
          },
          "health": {
            "$ref": "#/components/schemas/Health"
          },
          "next_actions": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "action",
                "reason"
              ],
              "properties": {
                "action": {
                  "type": "string"
                },
                "reason": {
                  "type": "string"
                },
                "url": {
                  "type": "string"
                }
              }
            }
          }
        }
      },
      "ManufacturingAdvice": {
        "type": "object",
        "properties": {
          "schema_version": {
            "const": "1.0"
          },
          "knowledge_version": {
            "type": "string"
          },
          "method": {
            "const": "curated_guidance"
          },
          "topic": {
            "type": "string"
          },
          "rules": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "questions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "sources": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "services": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "limitations": {
            "type": "array",
            "items": {
              "type": "string"
            }
          }
        },
        "required": [
          "schema_version",
          "knowledge_version",
          "method",
          "topic",
          "rules",
          "questions",
          "sources",
          "services",
          "limitations"
        ]
      },
      "PreliminaryDfm": {
        "type": "object",
        "properties": {
          "schema_version": {
            "const": "1.0"
          },
          "method": {
            "const": "rule_based"
          },
          "advice_id": {
            "type": "string"
          },
          "fingerprint": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "input_fingerprint": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "cad_sha256": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "spec_fingerprint": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "findings": {
            "type": "array",
            "items": {
              "type": "object"
            }
          },
          "certifies_printability": {
            "const": false
          },
          "specialist_review": {
            "type": "object",
            "properties": {
              "status": {
                "const": "not_performed"
              },
              "method": {
                "type": "null"
              },
              "can_request": {
                "const": true
              },
              "billing": {
                "const": "free"
              },
              "delivery_promised": {
                "const": false
              }
            },
            "required": [
              "status",
              "method",
              "can_request",
              "billing",
              "delivery_promised"
            ]
          },
          "limitations": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "supplier_quote": {
            "const": false
          },
          "payment_enabled": {
            "const": false
          },
          "ordering_enabled": {
            "const": false
          },
          "print_transmission_enabled": {
            "const": false
          }
        },
        "required": [
          "schema_version",
          "method",
          "advice_id",
          "fingerprint",
          "input_fingerprint",
          "cad_sha256",
          "spec_fingerprint",
          "findings",
          "certifies_printability",
          "specialist_review",
          "limitations",
          "supplier_quote",
          "payment_enabled",
          "ordering_enabled",
          "print_transmission_enabled"
        ]
      },
      "BudgetaryEstimate": {
        "type": "object",
        "properties": {
          "schema_version": {
            "const": "1.0"
          },
          "kind": {
            "const": "budgetary_model"
          },
          "availability": {
            "enum": [
              "available",
              "unavailable"
            ]
          },
          "fingerprint": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "estimate_id": {
            "type": "string"
          },
          "input_fingerprint": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "cad_sha256": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "spec_fingerprint": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "model_version": {
            "type": "string"
          },
          "analyzer_version": {
            "type": "string"
          },
          "currency": {
            "const": "USD"
          },
          "manufacturing_range_minor": {
            "anyOf": [
              {
                "type": "null"
              },
              {
                "type": "object",
                "properties": {
                  "low": {
                    "type": "integer",
                    "minimum": 0
                  },
                  "high": {
                    "type": "integer",
                    "minimum": 0
                  }
                },
                "required": [
                  "low",
                  "high"
                ]
              }
            ]
          },
          "shipping": {
            "type": "object"
          },
          "tax": {
            "type": "object"
          },
          "duties": {
            "type": "object"
          },
          "landed_total": {
            "type": "null"
          },
          "expires_at": {
            "type": "null"
          },
          "assumptions": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "unavailable_reasons": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "supplier_quote": {
            "const": false
          },
          "chargeable": {
            "const": false
          },
          "payment_enabled": {
            "const": false
          },
          "ordering_enabled": {
            "const": false
          }
        },
        "required": [
          "schema_version",
          "kind",
          "availability",
          "fingerprint",
          "estimate_id",
          "input_fingerprint",
          "cad_sha256",
          "spec_fingerprint",
          "model_version",
          "analyzer_version",
          "currency",
          "manufacturing_range_minor",
          "shipping",
          "tax",
          "duties",
          "landed_total",
          "expires_at",
          "assumptions",
          "unavailable_reasons",
          "supplier_quote",
          "chargeable",
          "payment_enabled",
          "ordering_enabled"
        ]
      },
      "BacklogOrderInput": {
        "type": "object",
        "properties": {
          "request_id": {
            "type": "string",
            "pattern": "^req_[a-f0-9-]{36}$"
          },
          "spec_fingerprint": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "order_type": {
            "enum": [
              "manufacturing",
              "quotation",
              "dfm_review"
            ]
          },
          "estimate_fingerprint": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "quote_id": {
            "type": [
              "string",
              "null"
            ],
            "pattern": "^qte_[a-f0-9-]{36}$"
          },
          "quote_fingerprint": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "review_notes": {
            "type": "string",
            "maxLength": 4000
          },
          "max_total_minor": {
            "type": [
              "integer",
              "null"
            ],
            "minimum": 0,
            "maximum": 99999999
          },
          "acknowledge_nonbinding": {
            "const": true
          }
        },
        "required": [
          "request_id",
          "spec_fingerprint",
          "order_type",
          "acknowledge_nonbinding"
        ],
        "additionalProperties": false,
        "allOf": [
          {
            "if": {
              "required": [
                "quote_id"
              ],
              "properties": {
                "quote_id": {
                  "type": "string"
                }
              }
            },
            "then": {
              "required": [
                "quote_fingerprint"
              ],
              "properties": {
                "quote_fingerprint": {
                  "type": "string"
                }
              }
            }
          },
          {
            "if": {
              "required": [
                "quote_fingerprint"
              ],
              "properties": {
                "quote_fingerprint": {
                  "type": "string"
                }
              }
            },
            "then": {
              "required": [
                "quote_id"
              ],
              "properties": {
                "quote_id": {
                  "type": "string"
                }
              }
            }
          }
        ]
      },
      "SpecialistReviewInput": {
        "type": "object",
        "properties": {
          "intent_fingerprint": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "cad_sha256": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "spec_fingerprint": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "reviewer_id": {
            "type": "string",
            "pattern": "^[A-Za-z0-9._:-]{1,80}$"
          },
          "summary": {
            "type": "string",
            "minLength": 1,
            "maxLength": 4000
          },
          "findings": {
            "type": "array",
            "maxItems": 30,
            "items": {
              "type": "object",
              "properties": {
                "code": {
                  "type": "string",
                  "pattern": "^[a-z0-9_]{1,80}$"
                },
                "severity": {
                  "enum": [
                    "info",
                    "warning",
                    "blocker"
                  ]
                },
                "detail": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 2000
                }
              },
              "required": [
                "code",
                "severity",
                "detail"
              ],
              "additionalProperties": false
            }
          },
          "recommendation": {
            "enum": [
              "needs_customer_input",
              "needs_supplier_quote",
              "review_complete"
            ]
          },
          "evidence_refs": {
            "type": "array",
            "minItems": 1,
            "maxItems": 20,
            "items": {
              "type": "string",
              "minLength": 1,
              "maxLength": 500
            }
          }
        },
        "required": [
          "intent_fingerprint",
          "cad_sha256",
          "spec_fingerprint",
          "reviewer_id",
          "summary",
          "findings",
          "recommendation",
          "evidence_refs"
        ],
        "additionalProperties": false
      },
      "SpecialistReview": {
        "allOf": [
          {
            "type": "object",
            "properties": {
              "intent_fingerprint": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "cad_sha256": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "spec_fingerprint": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "reviewer_id": {
                "type": "string",
                "pattern": "^[A-Za-z0-9._:-]{1,80}$"
              },
              "summary": {
                "type": "string",
                "minLength": 1,
                "maxLength": 4000
              },
              "findings": {
                "type": "array",
                "maxItems": 30,
                "items": {
                  "type": "object",
                  "properties": {
                    "code": {
                      "type": "string",
                      "pattern": "^[a-z0-9_]{1,80}$"
                    },
                    "severity": {
                      "enum": [
                        "info",
                        "warning",
                        "blocker"
                      ]
                    },
                    "detail": {
                      "type": "string",
                      "minLength": 1,
                      "maxLength": 2000
                    }
                  },
                  "required": [
                    "code",
                    "severity",
                    "detail"
                  ],
                  "additionalProperties": false
                }
              },
              "recommendation": {
                "enum": [
                  "needs_customer_input",
                  "needs_supplier_quote",
                  "review_complete"
                ]
              },
              "evidence_refs": {
                "type": "array",
                "minItems": 1,
                "maxItems": 20,
                "items": {
                  "type": "string",
                  "minLength": 1,
                  "maxLength": 500
                }
              }
            },
            "required": [
              "intent_fingerprint",
              "cad_sha256",
              "spec_fingerprint",
              "reviewer_id",
              "summary",
              "findings",
              "recommendation",
              "evidence_refs"
            ]
          },
          {
            "type": "object",
            "properties": {
              "review_fingerprint": {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              "advisory_only": {
                "const": true
              },
              "certifies_printability": {
                "const": false
              },
              "payment_authorized": {
                "const": false
              },
              "print_authorized": {
                "const": false
              },
              "created_at": {
                "type": "string",
                "format": "date-time"
              }
            },
            "required": [
              "review_fingerprint",
              "advisory_only",
              "certifies_printability",
              "payment_authorized",
              "print_authorized",
              "created_at"
            ]
          }
        ]
      },
      "BacklogOrder": {
        "type": "object",
        "properties": {
          "id": {
            "type": "string",
            "pattern": "^ord_[a-f0-9-]{36}$"
          },
          "request_id": {
            "type": "string"
          },
          "order_type": {
            "enum": [
              "manufacturing",
              "quotation",
              "dfm_review"
            ]
          },
          "status": {
            "enum": [
              "pending_review",
              "reviewed",
              "cancelled"
            ]
          },
          "intent_fingerprint": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "cad_sha256": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "spec_fingerprint": {
            "type": "string",
            "pattern": "^[a-f0-9]{64}$"
          },
          "specification": {
            "$ref": "#/components/schemas/CanonicalSpecification"
          },
          "estimate_fingerprint": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "estimate": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/BudgetaryEstimate"
              },
              {
                "type": "null"
              }
            ]
          },
          "quote_id": {
            "type": [
              "string",
              "null"
            ]
          },
          "quote_fingerprint": {
            "anyOf": [
              {
                "type": "string",
                "pattern": "^[a-f0-9]{64}$"
              },
              {
                "type": "null"
              }
            ]
          },
          "quote": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/ObservedQuote"
              },
              {
                "type": "null"
              }
            ]
          },
          "review_notes": {
            "type": "string"
          },
          "budget": {
            "type": "object",
            "properties": {
              "currency": {
                "const": "USD"
              },
              "max_total_minor": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 0
              },
              "binding": {
                "const": false
              }
            },
            "required": [
              "currency",
              "max_total_minor",
              "binding"
            ]
          },
          "review": {
            "anyOf": [
              {
                "$ref": "#/components/schemas/SpecialistReview"
              },
              {
                "type": "null"
              }
            ]
          },
          "service_tier": {
            "enum": [
              "free_advisory",
              "nonbinding_request"
            ]
          },
          "service_fee": {
            "type": "object",
            "properties": {
              "currency": {
                "const": "USD"
              },
              "amount_minor": {
                "type": [
                  "integer",
                  "null"
                ],
                "minimum": 0
              },
              "status": {
                "enum": [
                  "free",
                  "not_quoted"
                ]
              }
            },
            "required": [
              "currency",
              "amount_minor",
              "status"
            ]
          },
          "nonbinding": {
            "const": true
          },
          "charge_status": {
            "const": "not_charged"
          },
          "payment_status": {
            "const": "not_requested"
          },
          "supplier_status": {
            "const": "not_submitted"
          },
          "capacity_status": {
            "const": "not_reserved"
          },
          "print_authorization": {
            "const": "not_granted"
          },
          "ordering_enabled": {
            "const": false
          },
          "routing": {
            "type": "object"
          },
          "pending_requirements": {
            "type": "array",
            "items": {
              "type": "string"
            }
          },
          "cancellable": {
            "type": "boolean"
          },
          "created_at": {
            "type": "string",
            "format": "date-time"
          },
          "updated_at": {
            "type": "string",
            "format": "date-time"
          },
          "cancelled_at": {
            "type": [
              "string",
              "null"
            ],
            "format": "date-time"
          },
          "message": {
            "type": "string"
          }
        },
        "required": [
          "id",
          "request_id",
          "order_type",
          "status",
          "intent_fingerprint",
          "cad_sha256",
          "spec_fingerprint",
          "specification",
          "estimate_fingerprint",
          "estimate",
          "quote_id",
          "quote_fingerprint",
          "quote",
          "review_notes",
          "budget",
          "review",
          "service_tier",
          "service_fee",
          "nonbinding",
          "charge_status",
          "payment_status",
          "supplier_status",
          "capacity_status",
          "print_authorization",
          "ordering_enabled",
          "routing",
          "pending_requirements",
          "cancellable",
          "created_at",
          "updated_at",
          "cancelled_at",
          "message"
        ]
      }
    }
  },
  "x-native-mcp-catalog": "/tools-native.json"
}
